Web Socket& Netty - messageReceived上收到的消息类型

时间:2012-01-08 00:19:54

标签: websocket netty

我正在尝试使用Netty的WebSocketServer(Netty WebSocketServer)。我想从本机Web套接字客户端(来自:http://www.tutorialspoint.com/html5/html5_websocket.htm)向此服务器发送消息,代码如下:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function WebSocketTest()
{
  if ("WebSocket" in window)
  {
     alert("WebSocket is supported by your Browser!");
     // Let us open a web socket
     var ws = new WebSocket("ws://localhost:3210/websocket");
     ws.onopen = function()
     {
        // Web Socket is connected, send data using send()
        ws.send("Message to send");
        alert("Message is sent...");
     };
     ws.onmessage = function (evt) 
     { 
        var received_msg = evt.data;
        alert("Message is received...");
     };
     ws.onclose = function()
     { 
        // websocket is closed.
        alert("Connection is closed..."); 
     };
  }
  else
  {
     // The browser doesn't support WebSocket
     alert("WebSocket NOT supported by your Browser!");
  }
}
</script>
</head>
<body>
<div id="sse">
   <a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>

但是在处理程序的messageReceived方法中,它会看到BigEndianHeapChannelBuffer类型中的传入消息。

我需要在服务器代码中更改什么内容?

2 个答案:

答案 0 :(得分:0)

请注意,netty的稳定版本不支持浏览器使用的较新的websocket版本。您可能想要检查是否正在成功建立websocket连接。

答案 1 :(得分:0)

您使用的是哪种浏览器?

Netty 3.2中的代码支持HyBi-00。大多数浏览器都从该版本开始。请参阅post

Netty 3.3(源代码的3.2分支)和4.0(源代码的主分支)包含对最新Web套接字标准(RFC 6455)的支持。

我的建议是使用netty 3.2分支。

希望这有帮助。