没有连接客户端请求的多个连接套接字

时间:2018-06-04 09:03:01

标签: socket.io electron

我尝试使用socket.io在我的网络应用和我的原生应用之间进行客户端 - 服务器通信,我使用电子运行。

本机应用程序用作服务器,并在连接开始运行后初始化连接,如下所示:

// web-server.js

const httpServer = require('http').createServer();
const io = require('socket.io')(httpServer, { serveClient: false });

module.exports = {
  init() {
    httpServer.listen(19802);

    io.on('connect', socket => {
      // Logic
    });

  }
}

在客户端(网络应用)我正在执行以下操作:

// web-client.js

import io from 'socket.io-client';

const socket = io('http://localhost:19802');
export default socket;

然后我在其他模块中使用套接字来发送和接收事件。这就是全部。

问题是,当我在没有运行Web应用程序的情况下运行原生电子应用程序时,我获得了多个套接字连接(' connect'处理程序多次运行,以及io.sockets .sockets对象包含许多套接字(连接的)。

我不知道连接来自哪里,因为我甚至不运行我的网络应用程序(我也确保我的网络应用程序服务器已关闭)

你能帮我理解我做错了什么,怎么能在没有我的客户端运行的情况下获得多个独特的套接字连接? 我应该在每个原生应用程序运行之前以某种方式关闭我的连接吗?

另一件事是,当我运行我的网络应用并且它连接了原生应用服务器时,关闭浏览器标签后我就不会收到“已断开连接”的消息。服务器上的事件。我假设socket.io知道自己关闭连接,而不需要像window.beforeunload那样捕获事件并自己断开套接字。 它可能与我上面描述的问题有关,也许套接字在没有关闭的情况下保持连接?

0 个答案:

没有答案