如果Netty做服务器端向客户端推送,iOS做游戏客户端,请问通信问题如何解决

如果Netty做服务器端,iOS做游戏客户端,请问通信问题如何解决_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如果Netty做服务器端,iOS做游戏客户端,请问通信问题如何解决
我有更好的答案
服务器使用什么语言开发无关,关键是看客户端和服务器使什么协议进行数据的交换祝你愉快,满意请采纳哦
资深电脑人
为您推荐:
其他类似问题
netty的相关知识
换一换
回答问题,赢新手礼包netty 实现 服务器 客户端通信
客户端——服务器连接
先啰嗦两句,如果你还不知道Netty是做什么的能做什么。那可以先简单的搜索了解一下。我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序。具体能做什么,各位可以尽量发挥想象。技术,是服务于人而不是局限住人的。
如果你已经万事具备,那么我们先从一段代码开始。程序员们习惯的上手第一步,自然是&Hello world&,不过Netty官网的
客户端——服务器连接
先啰嗦两句,如果你还不知道Netty是做什么的能做什么。那可以先简单的搜索了解一下。我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序。具体能做什么,各位可以尽量发挥想象。技术,是服务于人而不是局限住人的。
如果你已经万事具备,那么我们先从一段代码开始。程序员们习惯的上手第一步,自然是"Hello world",不过Netty官网的例子却偏偏抛弃了"Hello world"。那我们就自己写一个最简单的"Hello world"的例子,作为上手。
既然是分布式的,自然要分多个服务。Netty中,需要区分Server和Client服务。所有的Client都是绑定在Server上的,他们之间是不能通过Netty直接通信的。(自己采用的其他手段,不包括在内。)。白话一下这个通信过程,Server端开放端口,供Client连接,Client发起请求,连接到Server指定的端口,完成绑定。随后便可自由通信。其实就是普通Socket连接通信的过程。
Netty框架是基于事件机制的,简单说,就是发生什么事,就找相关处理方法。就跟着火了找119,抢劫了找110一个道理。所以,这里,我们处理的是当客户端和服务端完成连接以后的这个事件。什么时候完成的连接,Netty知道,他告诉我了,我就负责处理。这就是框架的作用。Netty,提供的事件还有很多,以后会慢慢的接触和介绍。
客户端————服务器传递对象
说了这么多废话,才提到对象的传输,不知道您是不是已经不耐烦了。一个系统内部的消息传递,没有对象传递是不太现实的。下面就来说说,怎么传递对象。
如果,您看过前面的介绍,如果您善于专注本质,勤于思考。您应该也会想到,我们说过,Netty的消息传递都是基于流,通过ChannelBuffer传递的,那么自然,Object也需要转换成ChannelBuffer来传递。好在Netty本身已经给我们写好了这样的转换工具。 ObjectEncoder和ObjectDecoder。
工具怎么用?我们之前也说过,Netty给我们处理自己业务的空间是在灵活的可自定义的Handler上的,也就是说,如果我们自己去做这个转换工作,那么也应该在Handler里去做。而Netty,提供给我们的ObjectEncoder和Decoder也恰恰是一组 Handler。于是,修改Server和Client的启动代码:
要传递对象,自然要有一个被传递模型,一个简单的Pojo,当然,实现序列化接口是必须的。
服务端和客户端里,我们自定义的Handler实现如下:
启动后,服务端正常打印结果:Hello action.
简单梳理一下思路:
通过Netty传递,都需要基于流,以ChannelBuffer的形式传递。所以,Object -& ChannelBuffer.
Netty提供了转换工具,需要我们配置到Handler。
样例从客户端 -& 服务端,单向发消息,所以在客户端配置了编码,服务端解码。如果双向收发,则需要全部配置Encoder和Decoder。
这里需要注意,注册到Server的Handler是有顺序的,如果你颠倒一下注册顺序:
结果就是,会先进入我们自己的业务,再进行解码。这自然是不行的,会强转失败。至此,你应该会用Netty传递对象了吧。
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@ 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】2017互联网超级工程阿里双11完美落幕,交易额突破1682亿,但阿里工程师如何玩转“超级工程”,背后黑科技又是如何?12月13-14日,12位大咖直播分享揭秘1682亿背后技术实践,马上预约&&
高速通道(ExpressConnect)是一款便捷高效的网络服务,用于在云上的不同网络环境间实现高速、稳定、安全...
为金融行业提供量身定制的云计算服务,具备低成本、高弹性、高可用、安全合规的特性。帮助金融客户实现从传统IT向云计...
通过在客户自己的数据中心内交付完整的阿里云软件堆栈,阿里云专有云帮助政企客户向混合云架构平滑演进,实现从IT时代...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
社区之星年度评选,投票可抽奖
Loading...Netty的服务器端的Channel有到底有几个_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
Netty的服务器端的Channel有到底有几个
我有更好的答案
ch.Pipeline.AddLast(new ServerBootstrapAcceptor(_childGroup, _childHandler.AddLast(new ChannelInitializer&Channel&((ch) =&gtprotected override void Init(IServerChannel channel){
采纳率:80%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包3被浏览516分享邀请回答0添加评论分享收藏感谢收起

我要回帖

更多关于 客户端 服务器端 的文章

 

随机推荐