0

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

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

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

我试过了

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

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

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

4

1 回答 1

0

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

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

于 2013-06-26T14:52:31.527 回答