我正在使用javax.websocket API和org.glassfish.tyrus作为实现,在Java中编写Websocket客户端。
通常情况下一切正常,但有时当我接收到非常大的字符串时,连接会关闭并显示“非法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 WebSocket客户端可以完成基本的套接字字符串传输工作,不进行任何验证,并且只让我处理响应?
感谢您的反馈。