stomp server
特别适合前后端分离的方式,stomp毕竟是基于websocket的,这样不论是web还是其他的客户端,消息传输双向进行,速度比较快.
stomp支持数据的订阅,这样,服务端的一份数据,可以同时给所有客户端.
现在都开始搞前后端分离的,终端用户这里,使用了本地windows服务+C#做的窗体客户端,还用Vue做了Web的一套页面.
不使用websocket,web端就很麻烦,需要写很多定时器刷新数据,所以 后面定下来使用的方式是:
Vue做Web的前端(stompjs客户端)
C#做窗体的前端
本地服务做成windows服务:一个是解析Vue的项目的资源的Web服务,另一个是StompServer.一个解析图片,js等资源,一个实现接口.
.NET的是基于WebSocket-sharp做的,所以web和websocket使用同一个端口.
go版本的也是如此,不过它可以跨平台.
go版本
基于“net/http”的,使用go自己的库
https://github.com/0xAAFF/stompserver
go版本的stomp server的例子:
https://github.com/0xAAFF/stompserver_example
C#版本
https://github.com/0xAAFF/xstomp
XStompServer Based on WebSocket-sharp
翻译的协议
自己顺手翻译了一下Stomp的一点协议
https://github.com/0xAAFF/Stomp_V1.2_ZH-CN
其他
两个stomp server的库并不是完全支持了stomp的协议,其实跟java的库差不多,基础功能是实现了message broke
二者代码差不多。
如果您在使用过程中有不懂的或者发现了bug,留言吧。
废话
适用于本地服务+前后段分离的结构
二者都是使用一个端口,实现了web server和stomp server。这个不是我实现的,是net/http或者C#上的WebSocket-sharp自己就实现的,我只是扩展出了stompserver。
本质上,stomp是基于websocket的。所以,stomp支持几乎所有开发语言做的客户端。恩,跨平台跨语言嘛