【问题标题】:Node.js - Unity, Socket gets disconnected after getting re-connectedNode.js - Unity,重新连接后 Socket 断开连接
【发布时间】:2018-11-02 19:44:39
【问题描述】:

我正在开发一个 Node.js - Unity 游戏,我在其中使用套接字,以便用户连接到游戏。我遇到了一个问题,就像它像统一中的循环一样重新连接-断开连接。但是当我通过网络浏览器检查时,我没有遇到这样的问题。 最近我正在使用一个端口(3011)的另一件事 - 在这里它工作正常并且在转移到另一个端口之后(3012 无法正常工作)。我以为是这样,但事实并非如此。

我正在使用节点版本 v6.11.0(带有端口 3011 和 3012)和 用于 node.js(服务器端)的套接字版本 2.0.3

谁能帮帮我? 这是示例代码

io.on('connection', function(socket)
{
  console.log('User connected');

  socket.on('disconnect', function(reason){
    console.log('User disconnected',reason);
  });
});

socket.on('joinroom', function(roomId)
{
  console.log('player joined room: ' + roomId);
  socket.join("room_"+roomId);
});

http.listen(3012, function(){
  console.log('Started nodejs server');
  initRoomActivity();
});

问题看起来像

player joined room: XXXX
User disconnected client namespace disconnect
User connected
player joined room: XXXX
User disconnected client namespace disconnect
User connected
player joined room: XXXX

这里的XXXX指的是同一个房间, 这里的“client namespace disconnect”是断开原因

【问题讨论】:

  • 我最近遇到了完全相同的问题,我正在统一使用 BestHTTP Pro for socket.io,将其更新到最新版本为我解决了问题。
  • @turnipinrut,谢谢,让我检查一下
  • 我们可以在不更新的情况下这样做吗?
  • 可能使用旧版本的 websocket 库
  • 好的,让我检查一下

标签: node.js sockets unity3d


【解决方案1】:

你在使用 npm 库吗? 如果是,那么您可能已经升级了 socket.io npm 包

如果是,请尝试降级并重试 不要尝试升级当前项目中使用的包

【讨论】:

    【解决方案2】:

    c# socketOption 设置为 700

    TimeSpan miliSecForReconnect = TimeSpan.FromMilliseconds(700);
    

    把你的server.js改成

    var io = require('socket.io')(http, { pingInterval: 700 });
    

    添加此 ping 间隔

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 2020-09-20
      • 2012-08-07
      • 2019-02-22
      • 2011-05-24
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多