![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列
文章平均质量分 64
云卷云舒么么哒
以前c++为主, 现在喜欢golang. 使用过c, delphi, c#, swift, objective-c, python, lua, js, php......等编程语言. 熟悉windows客户端编程, 流媒体编程, webrtc, linux服务器编程, 云风skynet服务器编程, 比特币以太坊区块链研究. 移动端android, ios客户端编程.
展开
-
消息系统nats(gnatsd)的自定义鉴权扩展
因为对mqtt服务器mosquitto的源码简单研究感觉其性能在多处都有瓶颈比如网络层没有使用epoll,topic使用树(在大量topic时岂不是要遍历到死)还有很多……,所以又去网上搜索其他消息系统的资料,然后发现gnatsd的性能很牛逼,虽然功能上比mqtt弱,但是在某种程度上可能也可以契合我的项目。 首先我想了解一下gnatsd的鉴权系统,一开始发现都是写在配置文件里,这样对于少量的用户...原创 2018-05-06 03:01:06 · 862 阅读 · 0 评论 -
gnatsd修改防止一个帐号重复登录
golang就是爽,代码简单易懂。稍微看了一下gnatsd的源码,应该这样改就可以: 首先要自定义鉴权系统,每个用户都需要使用不同的用户名进行鉴权登录。 修改server.users新增一个clientid字段,记录登录成功的用户id,当然要记得写入时上server的锁。 client增加一个kicked变量做为标志。 鉴权成功在server.users中查看是否已经有clientid,如...原创 2018-05-06 03:01:51 · 274 阅读 · 0 评论 -
暂时放弃nats - gnatsd
放弃的原因 都下决心用gnatsd了,最终放弃的原因是ios平台居然没有好的客户端。 官方推荐的swift客户端: travelish/Swift*Nats* 最后更新是2016年,而且代码太简陋了,很多功能都没实现。 另外一个开源raykrow/swifty-nats看上去不错,可惜用了swifty-nio,不支持ios平台。 自己写又实在是没时间没精力。算了,先暂时放弃gnatsd...原创 2018-05-06 03:02:24 · 648 阅读 · 0 评论 -
gnatsd的Subject数据结构及优于mosquitto的原因
主题名(Subject Name) 主题名是大小写敏感的,必须是非空字符串,不能包含空格,使用“.”符号来分层,mqtt中使用“/”分层。 星号“*”匹配一层,跟mqtt中的“+”一样。 大于号“>”匹配后面所有层,跟mqtt中的“#”一样。 源码分析 代码都在sublist.go。 先列出数据结构: // A Sublist stores and effic...原创 2018-05-06 03:02:57 · 331 阅读 · 0 评论 -
gnatsd集群原理分析
看了一天gnatsd集群相关的源码差点没把我给绕晕,总算是搞个大体明白了,最近功力暴涨,哈哈哈。集群连接集群中的每个服务器之间都是互相通过route连接。 server1启动一个route进行tcp监听等待远程route连接。 收到server2的route client连接以后,server1调用sendInfo发送本服务器的一堆信息。 server2也开启route server监听等待别原创 2018-05-06 09:56:06 · 1223 阅读 · 0 评论 -
MQTT标准文档QOS等级容易理解错和surgemq QOS等级的BUG
MQTT SUBSCRIBE 英文原版: 3.8 SUBSCRIBE - Subscribe to topics 3.8.4 Response When the Server receives a SUBSCRIBE Packet from a Client, the Server MUST respond with a SUBACK Packet [MQTT...原创 2018-05-08 15:05:11 · 2487 阅读 · 0 评论