0

我已经编写了我的 websocket 服务器类并编写了 ServerPiplineFactory 类,但我不知道在 MyServerHandler 类中编写。MyServerHandler 类就像

  public class DiscardServerHandler extends SimpleChannelUpstreamHandler {

private static final String WEBSOCKET_PATH = "/websocket";

@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    Object msg = e.getMessage();
    //ctx.getChannel().write(msg);
    //msg.getClass();       
    if (msg instanceof HttpRequest) {
        //ctx.getChannel().write(msg);
    } else if (msg instanceof WebSocketFrame) {
        System.out.println("I am WebSocketFrame");          
    }

}

所以我不知道如果我收到HttpRequest我应该写什么以及如何将它发送回浏览器。

所以如果在我的jsp文件中写下类似下面的东西

   </script>
   var WEBSOCKET_URL = "ws://localhost:8090/websocket";
   $(document).ready(function() {
   ws = new WebSocket(WEBSOCKET_URL);


  ws.onopen = function(event) {  
 alert("test");
 $('#status').text("Waiting...."); 
  };

  ws.onmessage = function(event) {
  var message = jQuery.parseJSON(event.data);
  alert(message);
 }

  var encoded = $.toJSON("test message");
  ws.send(encoded);

  });
  </script>
  <body>
  <p id="status">&nbsp;</p>
  </body>

并调试这个jsp然后它转到messageReceived然后我不明白该怎么做然后websocket服务器如何与服务器通信。

因此,如果有人可以帮助我找到关于此的文档或对此进行一些解释,那就太好了。

4

1 回答 1

2

您将需要发出握手。查看 [1] 中的 websocket 示例。

[1] https://github.com/netty/netty/blob/3/src/main/java/org/jboss/netty/example/http/websocketx/server/WebSocketServerHandler.java

于 2012-08-17T20:13:45.113 回答