架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 268558|回复: 175

[资料] c# M2Mqtt连接Apollo MQTT服务器[附源码]

  [复制链接]
发表于 2017-1-4 15:02:41 | 显示全部楼层 |阅读模式
QQ截图20170104144853.jpg
分享一款mqtt测试工具
http://www.itsvse.com/thread-3905-1-1.html
(出处: 架构师)
.net/c# activemq操作示例[源码]
http://www.itsvse.com/thread-3907-1-1.html
(出处: 架构师)
关于activemq和rabbitmq资料汇总
http://www.itsvse.com/thread-4659-1-1.html
(出处: 架构师_程序员)


先附上网上的代码:

建立客户端连接并订阅

发布消息



网上的代码,应该连接mosquito mqtt服务器是对的,但是,连接Apollo MQTT服务器就需要改一些代码了。

然后,自己参考了许多文章,自己才写出来。

源码下载:

游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1MB +1 收起 理由
lxc1118 + 1 很给力!

查看全部评分





上一篇:微信公众号开发之VS远程调试
下一篇:SQL Server 跨服务器同步或定时同步数据库
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-1-4 15:04:40 | 显示全部楼层
Apache Apollo是一个代理服务器,主要用于消息的请求转发,下面是其常用的一些配置文件的介绍
一、users.properties:
用来配置可以使用服务器的用户以及相应的密码。
其在文件中的存储方式是:用户名=密码,如:
lily=123456
表示新增一个用户,用户名是:lily,密码是:123456
二、groups.properties:
持有群体的用户映射,可以通过组而不是单个用户简化访问控制列表。
可以为一个定义的组设置多个用户,用户之间用“|”隔开,如:
admins=admin|lily
表示admins组中有admin和lily两个用户
三、black-list.txt:
用来存放不允许连接服务器的IP地址,相当于黑名单类似的东西。
例如:
10.20.9.147
表示上面IP不能够连接到服务器。
四、login.config:
是一个服务器认证的配置文件,为了安全apollo1.6版本提供了认证功能,只有相应的用户名和正确的密码才能够连接
服务器。
五、服务器主配置文件apollo.xml:
该配置文件用于控制打开的端口,队列,安全,虚拟主机设置等。
       1、认证:可以使用<authenticationdomain="internal" />来配置是否需要连接认证,如果将其属性enable设置为false表示不用认证,任何人都可以连接服务器,默认为true
       2、access_rule:可以在broker或者virtual_host中用于定义用户对服务器资源的各种行为。如:
<access_rule allow="users" action="connect create destroy send receive consume"/>表示群组users里面的用户可以对服务器资源进行的操作有:connect 、create、 destroy、 send 、receive 、consume。详细的操作说明见:
http://activemq.apache.org/apollo/documentation/user-manual.html
       3、message stores:默认情况下apollo使用的是LevelDB store,但是推荐使用BDB store(跨平台的)只能够实用其中一种。使用LevelDB store的配置是:<leveldb_store directory="${apollo.base}/data"/>默认有提供不用任何修改。使用BDB store需要到网站下jar包支持http://download.Oracle.com/maven/com/sleepycat/je/5.0.34/je-5.0.34.jar,将jar包放在服务器的lib目录下面,然后将配置文件改成:<bdb_store directory="${apollo.base}/data"/>即可。
       4、connector:用于配置服务器支持的链接协议以及相应的端口。如:
<connector id="tcp" bind="tcp://0.0.0.0:61613" connection_limit="2000" protocol="mqtt"/>表示支持tcp链接,使用的端口是61613,链接限制是2000,自动侦听的协议是mqtt协议
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-5 10:58:40 | 显示全部楼层

@小渣渣  打扰了,想询问下,ssl/tls链接的问题。由于使用m2mqtt,在.net上编写客户端,使用的是.crt证书,  apollo是Java架构的,使用的证书是keystore封装的。故我自己生成了根证书和服务器证书,并将服务器证书打包成keystore,替换apollo中原本的keystore。先使用paho测试,将秘钥库和信任库都设置为我生成的keystore进行ssl安全通信,成功链接。然后 用c#编程, 想实现单向验证,将ssl    secure设为true,将根证书载入,客户端证书设为空,链接失败。然后发现单向认证好像需要设置client_auth属性。但是在设置该属性(即使设置为默认属性即client_auth=none)后,原本用paho测试端使用keystore可以链接到Apollo的,也不能了。不知道您对此有了解吗?感谢大佬
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-5 10:34:37 | 显示全部楼层
打扰了,看到您发表过关于M2mqtt库链接Apollo代理服务的帖子,想询问下,在客户端使用.crt证书,在Apollo上使用keystore进行ssl安全通信,想实现单向验证,好像需要设置client_auth属性。但是在设置该属性(即使设置为默认属性即client——auth=none)后,原本用paho测试端使用keystore可以链接到Apollo的,也不能了。不知道您对此有了解吗?感谢大佬
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-5-2 09:37:33 | 显示全部楼层
asdasef想到法官腐败

评分

参与人数 1MB -1 贡献 -1 收起 理由
北城织温22度 -1 -1 请勿灌水,提高回帖资料是每位会员应尽的义.

查看全部评分

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-5-3 10:30:56 | 显示全部楼层
学习一下,正在使用MQTT中,需要更换Apollo
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-5-3 10:31:59 | 显示全部楼层
zjpzjp 发表于 2017-5-3 10:30
学习一下,正在使用MQTT中,需要更换Apollo

Apollo  有缺陷
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-5-24 10:43:39 | 显示全部楼层
正在找相关资源,MARK
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-5-29 13:48:05 | 显示全部楼层
挺好的,是我想要的内容
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-6-7 10:15:28 | 显示全部楼层
正在学习,感谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-6-21 12:37:04 | 显示全部楼层
MQTT学习一下。。。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-6-27 19:50:07 | 显示全部楼层
我也遇到这个问题,谢谢楼主分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 09:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表