我正在用 Java 编写一个 Websocket 客户端,使用 javax.websocket API,并org.glassfish.tyrus
作为实现。
通常一切正常,但有时,当我收到非常大的字符串时,连接会以神秘的“非法 UTF-8 序列”作为关闭原因关闭。
log.info("Ws closed cuz: "
+ reason.getCloseCode() + " , "
+ reason.getReasonPhrase() + " , "
+ reason.toString());
输出:
INFO: Ws closed cuz: NOT_CONSISTENT , Illegal UTF-8 Sequence ,
CloseReason[1007,Illegal UTF-8 Sequence]
我猜要么字符串太大,要么字符串包含任何不兼容 UTF-8 的字符。
有没有办法获得有关导致此问题的实际字符串/数据包/帧的更多信息?或者,如果有办法告诉 tyrus 忽略任何编码问题,只需将原始字符串传递给我,让我处理它?
如果没有,是否还有另一个 java websockets 客户端可以通过套接字传输字符串并且不进行任何验证,只让我处理响应?
感谢任何反馈。