如何在实际应用中使用 Jetty 的 onWebSocketBinary API

how to use Jetty's onWebSocketBinary API in a real world application

API WebSocketListenerobWebSocketBinary 方法及其子类的签名如下所示:

void onWebSocketBinary​(byte[] payload, int offset, int len)

让我们称 payload 中的字节来自 offset 由于 len - 'current_bytes'。我应该如何解释这个 API:

如果,据推测,由于lenoffset不是payload数组的全部内容,我可以将其视为'shared'内存用作不同有效载荷的缓冲区?

API 是整个二进制消息。

offset/len 的原因是因为字节缓冲区是在知道整个 websocket 消息的整个总长度之前分配的。

因此发送给您的字节缓冲区通常比消息大。

如果您想要部分消息,则需要知道 "fin"(最终)标志。

对于部分二进制文件,您将使用 WebSocketPartialListener 接口并使用方法 ...

onWebSocketPartialBinary​(java.nio.ByteBuffer payload, boolean fin)