完成socket.emit后如何断开套接字

时间:2013-06-26 14:02:13

标签: java node.js socket.io

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

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

一旦我的发射完成,我想断开插座。

我试过

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

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

是否有任何处理器可以成功发射?如何在发射成功后关闭套接字?

1 个答案:

答案 0 :(得分:0)

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

客户可以在超时后再进行此操作 如果您使用Socket.IO只发送一条消息并在消息发送后关闭它,那么就没有必要使用Socket.IO,因为它会有基于握手过程的开销,你可能会考虑只使用HTTP请求来发送单个消息到服务器。