在 MyServerHandler 中为 Netty websocket 写啥

Posted

技术标签:

【中文标题】在 MyServerHandler 中为 Netty websocket 写啥【英文标题】:What to write in MyServerHandler for Netty websocket在 MyServerHandler 中为 Netty websocket 写什么 【发布时间】:2012-08-17 14:27:55 【问题描述】:

我已经编写了我的 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服务器如何与服务器通信。

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

【问题讨论】:

【参考方案1】:

您需要进行握手。查看 [1] 中的 websocket 示例。

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

【讨论】:

您好诺曼,感谢您的回复。我查看了链接,发现一个类 WebSocketServerHandshakerFactory 我需要这个吗?因为如果我使用它,我需要在 websocketx 包下使用 5-6 个类。我也不明白 WebSocketServerIndexPage.getContent(getWebSocketLocation(req));它只是从java类中获取内容我是否也需要这个,因为我有jsp文件而不是这个java来获取内容。我无法完全理解 WebSocketServerHandler.java 类,因为我是 websockets 的新手并第一次使用它

以上是关于在 MyServerHandler 中为 Netty websocket 写啥的主要内容,如果未能解决你的问题,请参考以下文章

Netty 作为TCP server

netty httpserver

超时问题

dubbo入门

A - A Flipping Game

当Tomcat遇上Netty