obWebSocketBinary
方法的API签名WebSocketListener
及其子类如下所示:
void onWebSocketBinary(byte[] payload, int offset, int len)
让我们将payload
中的字节从offset
到期len
- 'current_bytes'调用。我应该如何解释这个 API:
- "current_bytes"是从客户端发送的整个二进制消息,
payload
数组的其余部分与此会话调用无关 - "current_bytes"是部分二进制消息,我应该收集数据,直到
offset
+len
等于payload.length
- "current_bytes"是部分二进制消息,但我应该通过检查有效负载内容来管理"传递的完整消息"的概念
len
offset
不是payload
数组的全部内容,我可以将其视为用作不同有效负载缓冲区的"共享"内存吗?
API 是整个二进制消息。
偏移量/len 的原因是字节缓冲区是在知道整个 websocket 消息的整个总长度之前分配的。
因此,发送给您的字节缓冲区通常比消息大。
如果你想要部分消息,那么你需要知道"fin"(最终(标志。
对于部分二进制,您将使用 WebSocketPartialListener
接口并使用方法...
onWebSocketPartialBinary(java.nio.ByteBuffer payload, boolean fin)