netty 学习笔记 一步一步理解netty

最近项目的一个功能需要用netty做一个聊天服务,要用时时 所以老大让我看下netty.

以前都是玩的web项目, 思想都已经固化了,只认得 请求-返回这种服务器与客户端交互方式,所以在初次接触到netty的时候总是理解不了。我要记下来这几点:

1.netty 消息是如何传递的

netty服务器在收到消息时,同时也拿到了消息发送的管道(channel),服务器可以对这个管道直接推送消息(writeAndFlush)

推过去之后该管道的另一端即是客户端 就收到了消息。

我一开始看各种即时通讯demo的时候最不理解的就是这一点了,不明白消息是如何抵达客户端的,有人说源码里面这些都写了,

我想说 当我拿到源码的时候 我是完全不知道每一行的代码什么意思的。看了三天的demo 每次都看到睡着,强制自己不睡硬看,头就疼了 ,不睡一觉缓解不了。那种偏头痛 好像脑袋里的一根筋一突一突的涨疼。

我一直到第四天看了五六个demo之后,慢慢的去比较他们的不同,才逐渐发现 每个对象的用处,这时候每行代码的意义大致也都懂了,也不困了。思路豁然开朗。

2.netty如何实现推送给指定的客户端

这个真是会的不难 难的不会。其实想通了上面一个问题之后 这个问题已经不算什么问题了

netty服务器可以获取所有的激活的管道(channel),客户端在创建连接时(即创建channel)可以把channel与客户端的ID放到一个全局静态Map里面,当你想给特定的管道推送消息时,通过客户端Id找到对应的管道,给它推就行了。

我看的初级netty 简单通讯demo里面都是对所有的channel遍历发送,或者只对一个客户端发送,所以当时特别迷惑怎么给特定的客户端推送。直到我又读了个demo,发现了规律....

以上就是两点小白最困惑的地方了。后面或许还有 但是别怕 多百度,多看 总能解决的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值