개꿀
1k
2019-08-14 10:54:22
0
32

netty WebSocket 클라이언트 push 어떻게 하나요?


기초 설정은 다똑같고

파이프라인 설정에서

.addLast(new HttpServerCodec())

.addLast(new HttpObjectAggregator(65536))

.addLast(new WebSocketServerCompressionHandler())

.addLast(new WebSocketServerProtocolHandler("/websocket", null, true))

.addLast(new NettyServerHandler());

이렇게 설정해주고


핸들러에서는

public class NettyServerHandler  extends SimpleChannelInboundHandler<WebSocketFrame> {


@Override

public void channelActive(ChannelHandlerContext ctx) throws Exception {

System.out.println("---server Connected----");

ctx.writeAndFlush(new TextWebSocketFrame("-----send-----"));

}


 .....  생략

}

이렇게 설정했습니다.




웹단에서 

var socket = new WebSocket("ws://localhost:8080/websocket");

...생략




소켓 연결하면

최초로 channelActive 메소드가 실행되는데

거기서 writeAndFlush로 메세지를 전달하면

        socket.onmessage = function (event) {

            console.log(event);

        };

웹단에서 이렇게 받을수 있는게 아닌가요??


소켓서버에서 일정시간마다 클라이언트로 push 해주고싶은데

netty document 보는게 너무 어렵네요;;


아니면 혹시 netty 공부하기 좋은 블로그 있으면 추천해주시면 정말 감사하겠습니다.

더우신데 조심들하세요~





0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.