getRemote().sendString(msg, new WriteCallback() {..}) 稳定吗?
Is getRemote().sendString(msg, new WriteCallback() {..}) stable?
我有
class MyWebSocket extends WebSocketAdapter
我需要使用以下方式将 text1、text2 和 text3 发送到 websocket 客户端:
getRemote().sendString(text, new WriteCallback() {...})
这个调用是异步的,所以我希望这项工作是在码头池的不同线程中完成的。
我的问题是:
我可以确定客户端上的序列是相同的:text1、text2 和 text3 吗?
如果是,请在官方文档中添加link。
更新:
在 RemoteEndpoint 的文档中,可以阅读:
void sendString(String text)
throws IOException
Send a text message, blocking until all bytes of the message has been
transmitted.
和
void sendString(String text,
WriteCallback callback)
Initiates the asynchronous transmission of a text message. This method
may return before the message is transmitted. Developers may provide a
callback to be notified when the message has been transmitted or
resulted in an error.
那么,如果是带回调的sendString,如果在同一个线程中调用回调,如何实现异步呢?
另外,这两种方法有什么区别?
该调用只是将 WebSocket 端点的传出文本排队。
然后,当 NIO 层报告可以写入时,排队的消息将转换为帧,通过 WebSocket 扩展传递,屏蔽(如果从客户端发送),然后写入套接字。
一旦该帧的整个缓冲区写入套接字,就会触发 WriteCallback。
None 这是在另一个线程上。
只有 1 个线程处理写入,它只处理队列中的消息。
我有
class MyWebSocket extends WebSocketAdapter
我需要使用以下方式将 text1、text2 和 text3 发送到 websocket 客户端:
getRemote().sendString(text, new WriteCallback() {...})
这个调用是异步的,所以我希望这项工作是在码头池的不同线程中完成的。
我的问题是:
我可以确定客户端上的序列是相同的:text1、text2 和 text3 吗?
如果是,请在官方文档中添加link。
更新: 在 RemoteEndpoint 的文档中,可以阅读:
void sendString(String text)
throws IOException
Send a text message, blocking until all bytes of the message has been transmitted.
和
void sendString(String text,
WriteCallback callback)
Initiates the asynchronous transmission of a text message. This method may return before the message is transmitted. Developers may provide a callback to be notified when the message has been transmitted or resulted in an error.
那么,如果是带回调的sendString,如果在同一个线程中调用回调,如何实现异步呢?
另外,这两种方法有什么区别?
该调用只是将 WebSocket 端点的传出文本排队。
然后,当 NIO 层报告可以写入时,排队的消息将转换为帧,通过 WebSocket 扩展传递,屏蔽(如果从客户端发送),然后写入套接字。
一旦该帧的整个缓冲区写入套接字,就会触发 WriteCallback。
None 这是在另一个线程上。
只有 1 个线程处理写入,它只处理队列中的消息。