使用 netty 实现html5的web socket

 web socket 是html5的一个新特性,使用它就可以很容易的实现浏览器和服务器的socket通信,相比较http的3次握手和较为冗余的head信息,web socket只要1次握手过程并没有head数据
 

今天研究了下 java 版web socket的实现,采用了netty。

        netty的官方站点在 : http://netty.io/,事实上这个就是jboss netty的新站点。

        在netty的站点 http://netty.io/docs/ 上根据web socket的例子。

        启动了web socket server,通过firebug 看到如下切换协议的请求。

 



 


    这一步就是  new WebSocket("ws://localhost:8080/websocket"); 的过程,netty handler接收到该请求之后,执行一次握手操作。

  

 
  
    这时候服务器和浏览器就建立了一个socket连接,服务器会保持这个连接的通道。

    另外netty还支持消息的广播,这里需要引入一个 group的概念。

 ChannelGroup recipients = new DefaultChannelGroup();
 recipients.add(channelA);
 recipients.add(channelB);
 ..
 recipients.write(ChannelBuffers.copiedBuffer(
         "Service will shut down for maintenance in 5 minutes.",
         CharsetUtil.UTF_8));

通过这种方式,消息就会分发到指定的group了。


    具体的代码可以参考: svn://www.oksvn.com/javaStu/html5demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值