我们的服务器目前只支持一种,协议由 GPS 设备厂商提供,但是由于对方这块业务不做了,所以准备对接其他厂家(协议大概率是对方提供而非我们制定)。
搜索了下,大概有 2 种:
1.一个端口处理多个协议,在 decoder 里根据协议头不同,分别解析
2.多个端口处理,创建多个 nettyserver 实例用不同端口隔离不同协议
所以在不更改原有协议的,并且增加多个自定义协议(后续也许还有)的情况下,怎样更好点?
有没有做过类似需求的大佬分享下更好的办法
1
xkzhangsan 2019-11-03 09:12:03 +08:00
可以在根据协议类型设置对应协议处理,可以参考 dubbo 多协议的处理。
|
2
Huayx9 2019-12-24 14:33:12 +08:00
jt808 交流一下?
|
4
tairan2006 2019-12-27 11:15:38 +08:00
楼主啥思路,我这边做物联网关,协议乱七八糟的,甚至还有 modbus 之类的…如果用同一个端口,能不能正确解析协议也是一个问题。
本来想用 go 写的,这就比较简单了,可惜 go 语言的生态不行,很多工业协议都没有成熟的类库,额外工作量太大了。 |
5
Uyuhz OP @tairan2006 go 我不太了解,我是用的 JAVA 的 Netty。感觉一个端口不太方便,最后还是用不同端口去隔离开来解析的。目前有两个协议,一个是 JT808 改的协议,一个是厂家自定义的协议。
之前 1L 说的参考 dubbo 多协议处理,我去看了下源码,实在没看懂。 |
6
tairan2006 2019-12-27 14:35:56 +08:00
|