如何实现Netty框架中服务器端的消息推送?

如何实现Netty框架中服务器端的消息推送?,第1张

netty框架是用在服务器端,客户端是嵌入式编程,通过自定义的tcp通信协议进行连接的,现在需求是这样的,服务器端只是用来和客户端进行通信,现在有第三方如微信端进行支付成功后在数据库里生成了一条数据,表示要往某个客户端发送指令,以下两种方式可供参考:

1、微信端生成通讯指令后调用TCP端的接口(负责通讯程序和数据库交互的),在接口程序中通过定义Socket连到通讯程序服务器端,根据通道编号去发送,但是这种会导致服务器端的tcp客户端连接变得更多。

2、直接在netty框架中定义了scheduleAtF。

当然也可借助第三方工具来完成推送。例如极光推送,极光推送具有以下功能:

1、多种消息类型

开发者可以轻松地通过极光发送各个移动平台的系统通知,还可以在控制台编辑多种富文本展示模板; 极光还提供自定义消息的透传,客户端接到消息内容后根据自己的逻辑自由处理。

2、用户和推送统计

完整的消息生命周期查询,并且可以形成“推送报表”与“用户统计报表”呈现给开发者,用来观察推送的效果和应用发展趋势。

3、短信补充

通过极光后台推送APP通知消息,对于一些重要又不能遗漏的信息可以调用极光短信的后台对未收到的客户端发送短信通知,保证消息的可靠性。

4、A/B 测试

合理的推送能够激活用户,提高用户粘性,使用A/B分组测试的科学方法,根据测试反馈的结果,帮助开发者选择最优化的推送方案。

5、极光推送安全包

为金融、新闻、政务及其他对推送安全要求极高的客户提供安全严谨、稳定可靠的信息推送解决方案

6、可定制的私有云

对于安全性要求更高,希望推送数据和系统存储在自己服务器的客户,及个性化需求需要定制开发的,性能更高要求的,或者想拥有自己推送平台的甚至要求源码授权二次开发的开发者,极光提供全功能的私有云解决方案。

深圳市和讯华谷信息技术有限公司(极光 Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的开发者服务提供商,专注于为开发者提供稳定高效的消息推送、一键认证以及流量变现等服务,助力开发者的运营、增长与变现。同时,极光的行业应用已经拓展至市场洞察、金融风控与商业地理服务,助力各行各业优化决策、提升效率。

客户端是发送消息给服务器的,服务器不可能主动发消息给客户端。就是长链接,比如,客户端发送一个消息你好的消息给服务器,那么服务器会接收到,这时候就有客户端的所有信息,比如id+ip组成的管道,管道id(一般是用户id)。

如果“向所有客户端发送某消息”,那么要想办法在设置一个资格(比如登陆的时候保存客户端的信息用对象存储,这样更利于更改更新管道)。然后把所有客户端放到一个list里面存储。遍历list,给每个用户发送消息。

客户端发起http请求,请求Netty服务器进行WebSocket连接,服务器接收后请求后进行注册信道并登记客户端IP地址,如此一来就建立了WebSocket通讯连接。

上面的论述可以得出,我们可以比较Http和WebSocket两者之间的关系和区别

基于上述WebSocket的特点,可以实现在线设备的消息推送

创建线程启动Netty服务器

也许这里,有些疑问为什么需要创建线程来启动Netty服务器,这里尝试一下如果没有创建线程,直接在Main主线程启动,看看会有什么问题?这个问题留着后面再去说明

在配置文件中进行WebSocket的端口配置

上面的步骤进行完成了一个Netty服务器的初始化启动和端口监听,这时候会有疑问了,消息推送功能还没有实现。所以下面就是我们如何去实现消息处理逻辑


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/279455.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存