我使用socket.io-java-client将服务器端的java类连接到node.js并发出一些事件。
因为我在服务器上运行它,所以我不希望套接字线程始终运行。
一旦我的发射完成,我想断开插座。
我试过
SocketIO socket=new SocketIO("http://IP:9001");
socket.emit("EVENT", "data");
socket.disconnect();
但是这失败了,因为我们在发送消息之前就关闭了套接字。
是否有任何处理器可以成功发射?如何在发射成功后关闭套接字?
答案 0 :(得分:0)
在向服务器发送消息后,服务器可以从其侧面断开连接。只是在收到特定消息时,它可以断开该客户端套接字 或者服务器可以另外发送响应,客户端可以在收到此响应时关闭他自己。但服务器应该保护他自己创建超时,以便关闭那些没有自己关闭的空闲客户 我建议在服务器端执行此操作,并且不要相信客户端会做出这样的决定。
客户可以在超时后再进行此操作 如果您使用Socket.IO只发送一条消息并在消息发送后关闭它,那么就没有必要使用Socket.IO,因为它会有基于握手过程的开销,你可能会考虑只使用HTTP请求来发送单个消息到服务器。