怎么实现MINA写的服务器程序支持多个自定义协议,并且在运行时期随意更换?

发布于 2021-11-24 17:29:32 字数 159 浏览 1003 评论 14

怎么实现MINA写的服务器程序支持多个自定义协议,并且在运行时期(注:运行时期这个词其实是一个限制条件,就是不能让mina的server程序停)随意更换?

如果可以 自定义协议应该以什么文件格式引入到服务器中?请大神帮忙解答啊 想了好长时间都没想出来


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

本宫微胖 2021-11-25 23:50:38

求解答

臻嫒无言 2021-11-25 23:50:38

自己做一个网关,这跟mina没关系。

顾挽 2021-11-25 23:50:38

大神 请将详细一点 谢谢

坚持沉默 2021-11-25 23:50:38

首先 谢谢您 需求目标其实您已经说全了 就是支持多个协议同时可以动态更换协议 我现在程序不是web程序 所以不用tomcat之类的中间件 我想问 容器路由您指的是什么? 使用网关应该怎么做 请您指明 谢谢

狼亦尘 2021-11-25 23:50:38

继续求解答

孤檠 2021-11-25 23:50:37

协议相关的代码与server怎么分离啊? 二进制转报文 和 报文转数据的 代码 我想与server分开 现在是动态加载jar的方法 实现解耦 主要是用反射 但是发现这种方式有点麻烦 而且报文转数据的filter好像没办法用反射加载到filterchain中

混吃等死 2021-11-25 23:50:33

自己写个推送配置的代码,监听到配置有变化了那就换个协议  或者 jmx

为你鎻心 2021-11-25 23:50:30

无人问津了啊

白龙吟 2021-11-25 23:49:39

回复
感觉反射真的可以有。LZ去试试

情绪失控 2021-11-25 22:54:24

回复
试过了 方法调用异常 我将自定义的协议(里面有报文头/报文体/报文尾等数据的封装还有编解码器)打包成jar文件 用jar动态加载实现协议与服务器程序的解耦 但服务器程序还是没办法与协议完全解耦

岁月打碎记忆 2021-11-25 22:10:30

回复
运行期是,服务器程序在不停止的情况下

初见你 2021-11-25 22:05:53

回复
那方法还是可行的吧,只是没写对?

爱的故事 2021-11-25 05:57:13

回复
不放jar包里 就能运行

泛滥成性 2021-11-25 04:48:56

思路如下:

1,写好你需要的多个协议的codec

2,使用,filter对过来的首次请求做判断后动态添加 codec,以后这个会话就固定到这个添加的codec了;比如你server同一个端口,既要支持text协议,又要支持object协议,对与server端,只需要对client的连接做判断,判断他需要走什么协议(你client的请求包可以做标志来区分)后,动态add codec就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文