0

我对 Apache mina 和 websocket 通信有疑问。

握手工作正常,并且我与服务器建立了有效连接,但是如果我的客户端向我的服务器发送字符串,则字符串会收到,但我无法在控制台中显示它们。

public void messageReceived(IoSession session, Object message) throws Exception {
System.out.println(message.toString());
if(message.toString().length() > 20 && message.toString().substring(0, 17).equals("Sec-WebSocket-Key")) {
  new Thread(new WebsocketHandler(session, message)).start();
} else {
  //
}}

我的服务器日志说消息收到

信息:收到:HeapBuffer[pos=0 lim=10 cap=2048: 81 84 88 45 2B 31 DC 00 78 65]

但我无法显示消息,我认为这是我的 TextLineCodecFactory 过滤器,但我不知道为什么。

4

2 回答 2

1

试试这个处理所有与 websocket 相关的编解码器:https ://issues.apache.org/jira/browse/DIRMINA-907

于 2013-11-27T17:44:12.363 回答
0

写入时添加“\r\n”。

byte[] bytes = content.getBytes("UTF-8");
outputStream.write(bytes);
outputStream.write("\r\n".getBytes());

于 2015-12-01T07:36:53.243 回答