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 に答える