【问题标题】:How to disconnect a socket once the socket.emit is donesocket.emit 完成后如何断开套接字
【发布时间】:2013-06-26 14:02:12
【问题描述】:

我正在使用 socket.io-java-client 将服务器端的 java 类连接到 node.js 并发出一些事件。

因为我在服务器上运行它,所以我不希望套接字线程一直在运行。

一旦我的发射完成,我想断开套接字。

我试过了

SocketIO socket=new SocketIO("http://IP:9001");
socket.emit("EVENT", "data");
socket.disconnect();

但这失败了,因为我们甚至在它发送消息之前就关闭了套接字。

是否有发射成功的处理程序?发射成功后如何关闭socket?

【问题讨论】:

    标签: java node.js socket.io


    【解决方案1】:

    在您向服务器发送消息后,服务器可以从其一侧断开连接。仅在收到特定消息时,它就可以断开该客户端套接字。
    或者服务器可以另外发送响应,客户端可以在收到此响应时关闭自己。但是服务器应该确保他自己创建超时,以关闭没有自行关闭的空闲客户端。
    我建议在服务器端执行此操作,并且永远不要相信客户端会做出这样的决定。

    客户端可以在超时后额外执行此操作。
    如果您使用 Socket.IO 只是为了发送一条消息并在消息发送后关闭它,那么使用 Socket.IO 没有意义,因为它会基于握手过程产生开销,您可以考虑只使用 HTTP 请求来发送单个消息到服务器。

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2019-06-07
      相关资源
      最近更新 更多