Java Websockets发送方法是异步还是等待?

时间:2017-01-08 22:59:55

标签: java java-websocket

我正在使用https://github.com/TooTallNate/Java-WebSocket中的Java Websockets库。我想计算发送消息之间的延迟。当使用send(message);函数时,是否会等到服务器收到数据包(因为它使用TCP),或者只是在它自己的线程中完成该方法。

谢谢!

2 个答案:

答案 0 :(得分:2)

  

使用发送(消息)时;函数,将等到服务器收到方法

这句话甚至没有意义。服务器没有收到方法,它接收方法发送的数据。

  

(因为它使用TCP)

TCP API中没有任何内容等待对等方接收任何内容。当您通过TCP发送数据时,它将缓冲在本地套接字发送缓冲区中并立即返回。实际数据通过网络异步发送到对等体。如果底层套接字处于阻塞模式(默认),则发送缓冲区已满时发送块,否则它将以非阻塞模式返回短发送返回代码,或者在异步中发布某种Future模式。您的问题可能与底层套接字中的哪些模式有关。

  

或者只是在自己的线程中完成该方法。

它总是在任何模式中都这样做。

答案 1 :(得分:0)

原来是

  

非阻塞事件驱动模型(类似于Web浏览器的WebSocket API)。

可以从README.MD此处找到:https://github.com/TooTallNate/Java-WebSocket