Socket.io一直在尝试建立连接。

3
客户端通过以下方式连接到我的服务器...
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。这是什么原因,这正常吗?如果不正常,我该怎么做才能防止这种情况发生?客户端继续轮询服务器是否正常?

编辑

额外说明,我正在使用Hapi.js作为插件的Socket.io...

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")的引用。


1
(修辞)问题是,如果您只使用您向我们展示的代码编写程序,是否会重现您所描述的症状?如果不是,您希望我们如何知道是什么导致了它?请创建一个 [mcve]。 - Patrick Roberts
@PatrickRoberts 不确定还有什么需要补充的,我编辑了我的问题并提供了所有重现代码所需的内容。 - buydadip
请在浏览器的开发者控制台中验证是否存在稳定的连接。 - Daniel W.
@DanFromGermany 看起来从浏览器端来看都很好,所有的套接字端点都可以工作。 - buydadip
1个回答

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/


没有,我稍后会尝试一下并回复您,我创建了一个插件,参考了我在网上看到的另一个示例。 - buydadip
@Bolboa 当然,试一下然后告诉我! - Aravindan Ve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接