【问题标题】:Socket.io keeps trying to establish a connectionSocket.io 不断尝试建立连接
【发布时间】:2018-12-06 21:25:22
【问题描述】:

客户端正在使用以下连接到我的服务器...

var socket = io.connect('http://localhost:52805');

在服务器上,我正在使用...建立此连接

// Establish a connection with a WebSocket.
io.on("connection", socket => {

  console.log("Socket Connection");

  ...

现在,如果我检查服务器端的控制台,在控制台中我会定期收到以下信息...

Socket Connection
Socket Connection
Socket Connection
Socket Connection
...

即使我没有刷新客户端,它仍然会打印出 Socket Connection

这是什么原因造成的,这正常吗?如果没有,我能做些什么来防止这种情况发生?客户端一直轮询服务器正常吗?

编辑

作为一个额外的说明,我使用 Socket.io 作为插件与 Hapi.js...

const sockets = require("./src/Playlist/index");


// Define the server.
const server = new Hapi.Server({ 
  port: process.env.PORT, 
  routes: { 
    cors: true 
  } 
});

// Socket.io plugin.
await server.register(sockets);

// Start the server.
await server.start();

其中sockets 只是对上面提到的io.on("connection") 的引用。

【问题讨论】:

  • (修辞)问题,如果您要编写一个仅使用您向我们展示的代码的程序,那会重现您所描述的症状吗?如果不是,您希望我们如何知道是什么原因造成的?请创建一个minimal reproducible example
  • @PatrickRoberts 不知道要添加什么,我编辑了我的问题并提供了一切来重现我的代码。
  • 请在浏览器的开发控制台中验证是否存在稳定的连接。
  • @DanFromGermany 从浏览器端看起来不错,所有套接字端点都可以工作。

标签: javascript node.js socket.io hapijs


【解决方案1】:

您是否尝试过像这样使用server.listener 初始化 io:

const Hapi = require('hapi');
const server = new Hapi.Server();
const io = require('socket.io')(server.listener); // <--- THIS

...


io.on('connection', function (socket) {
    ...
});

...

server.start();

见:http://matt-harrison.com/using-hapi-js-with-socket-io/

【讨论】:

  • 不,我没有,我稍后会尝试这个并回复你,我根据我在网上看到的另一个示例创建了一个插件。
  • @Bolboa 确定,试试看告诉我!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2017-12-23
相关资源
最近更新 更多