obWebSocketBinary
的WebSocketListener
方法的API签名及其子类如下所示:
void onWebSocketBinary(byte[] payload, int offset, int len)
让我们从payload
调用offset
中的字节,因为len
- 'current_bytes'。我该如何解释这个API:
payload
数组与此会话调用无关offset
+ len
等于payload.length
假设offset
的len
不是payload
数组的全部内容,那么我是否可以将其视为用作不同有效载荷缓冲区的“共享”内存?
API是完整的二进制消息。
offset / len的原因是因为在整个websocket消息的整个总长度已知之前分配了字节缓冲区。
因此发送给您的字节缓冲区通常比消息大。
如果你想要部分消息,那么你需要知道“fin”(最终)标志。
对于部分二进制文件,您将使用WebSocketPartialListener
接口并使用该方法...
onWebSocketPartialBinary(java.nio.ByteBuffer payload, boolean fin)