标签:服务器 foxmail strong github 启动服务 name push 业务 epo
咳咳,在这里呢,小轩就不多说什么是WebSocket的,还有呢,小轩为什么不给出JS-Client代码?网上太多代码可以用了。小轩这里的WebSocket客户端是非JS客户端,因为小轩的项目后台逻辑要与WebSocket服务器通信,所以才搞了个客户端出来。不多说,先上成果图。
这里,小轩可以支持文本消息,也可以支持二进制数据。当然,逻辑写的很简单,就是简单的发送消息。但是可以在此基础上进行业务逻辑的修改,从而达到符合自己的业务需求。
好了,图呢,就先到这里,小轩这边已经在正常使用中。没有视频演示还真是硬伤。
之所以看到tdg_yyx跟连接里面的不一样,是因为在小轩的项目中集成的客户端中加了系统前缀。所以才会有这样的演示图。当然,如果想知道具体再怎么使用的话,依旧可以联系小轩我哦。
例子中的编码解码数据是使用的MsgPack对对象进行了序列化。但是从服务器发给浏览器客户端的时候使用的是文本消息哦。
项目源码已共享至github中,另起了一个新的repository哦。与之前的demo分开了。可以直接拿下来进行修改的哦。
|- xpush
|——push-client
|————org.yyx.message.push.client
|——————client // 客户端代码
|——————config // 从yml文件中加载配置的Netty配置类包
|——————entity // 用来在服务器与客户端之间进行传输的实体类包
|——————handler // WebSocket客户端处理包
|——————listener // 用于启动客户端的监听器
|——————util // 此处应该写接口,主要用来做传输消息的逻辑
|————PushClientApplication // SpringBoot 启动类
|——push-server
|————org.yyx.message.push.server
|——————config // 从yml文件中加载配置的Netty配置类包
|——————entity // 用来在服务器与客户端之间进行传输的实体类包
|——————handler // WebSocket服务端处理包
|——————listener // WebSocket服务端监听器
|——————main // 服务端代码
|——————util // 此处应该写接口,主要用来做传输消息的逻辑
|————ServerApplication.java // SpringBoot 启动类
到目前为止,仍然没有看到客户端的作用对吧。不急,向下看。
当Web服务器处理了一些业务,需要给当前用户A发送消息通推送,可以在后台直接调用客户端发送消息给用户的方法,此时,就用到客户端了。
WEB后台调用client发送消息的方法,以上面提到的system_manage身份发送消息给指定用户。消息以二进制数据到达服务端,服务端有写好的业务逻辑,将消息解码后,回写数据给用户A(没错,用户A就是通过js与服务端建立连接的前台用户)当然,这里也可以做到给所以在线用户发送消息。这里就不多说了。原理是一样的。
基于Netty的一个WeoSocket通信服务器与客户端代码(非JS代码)
标签:服务器 foxmail strong github 启动服务 name push 业务 epo
原文地址:https://www.cnblogs.com/tdg-yyx/p/9070631.html