2012-01-08 150 views
0

我试着Netty的WebSocketServer(Netty WebSocketServer)。我想从一个本地网络套接字客户端(来源:http://www.tutorialspoint.com/html5/html5_websocket.htm)发送邮件到该服务器使用的代码如下:Web Socket&Netty - 收到消息类型消息接收

<!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类型。

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

回答

0

您正在使用哪种浏览器?

Netty 3.2中的代码支持HyBi-00。大多数浏览器都从该版本转向。见post

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

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

希望这会有所帮助。

+0

感谢您的回复,我下载了源代码,并且正在尝试通过maven构建,但它询问我“GPG密码短语”,我找不到任何有关它的信息。你知道密码吗?或者我应该怎么做? – 2012-01-09 00:20:42

+0

我想你可能会不小心尝试部署它。尝试使用mvn jar或mvn包。 – Veebs 2012-01-09 01:41:11

+0

它可以与mvn包一起使用。但是我仍然在使用BigEndianHeapChannelBuffer。顺便说一下,我使用的是铬14.0.835.202(开发版Build 103287 Linux),我已经下载了https://github.com/netty/netty/tree/3.2 – 2012-01-09 02:42:43

0

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