我在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 {
//
}}
我的服务器日志显示消息收到
信息:已接收:堆缓冲区[pos=0 lim=10 cap=2048:81 84 88 45 2B 31 DC 00 78 65]
但我无法显示消息,我想这是我的TextLineCodecFactory过滤器,但我不知道为什么。
试试这个编解码器,它可以处理与websocket相关的一切:https://issues.apache.org/jira/browse/DIRMINA-907
写入时添加"\r\n"。
byte[] bytes = content.getBytes("UTF-8");
outputStream.write(bytes);
outputStream.write("rn".getBytes());