我想为各种Android设备开发一个简单的推送通知系统。 经过两天的文档记录,我发现使用MQTT协议非常有趣。
系统需求: - Android上的MQTT客户端:eclipse Paho似乎是一个很好的解决方案 - 你喜欢服务器部分的任何MQTT代理:我的注意力集中在Mosquitto上,因为它是开源的
我已阅读文档和配置文件,看起来很清楚。唯一让我无法理解的是,我是否可以管理主题(客户订阅的地方)。特别是如果我可以创建主题以及如何创建主题。
感谢。
答案 0 :(得分:1)
目前尚不清楚您是在客户方还是经纪方......
假设您的意思是代理方,您不需要创建主题,它们会根据需要自动创建。您可以使用内置身份验证和ACL代码控制哪些客户端可以访问哪些主题,或者您可以使用身份验证和访问插件。编写自己的内容非常简单,或者您可以使用优秀的https://github.com/jpmens/mosquitto-auth-plug
在客户端,只需订阅或发布到主题即可在代理上创建它,前提是您拥有该主题的权限。在所有MQTT实现中可能并非如此。
例如,尝试订阅#
或test.mosquitto.org
上的iot.eclipse.org
主题。这些显示了大量可用主题,并且没有管理员在后台支持它们。
这基本上意味着您所拥有的唯一管理负载是在需要时限制对代理的访问。
答案 1 :(得分:0)
使用来自某个地方的代码窃取,我为Android制作了一个非常简单的“MQTTMessenger”应用程序。 https://bitbucket.org/mjgasner/mqttmessenger
从我记忆中,你需要进入src / com / gasner / mqttmessenger / MessengerService.java 并将主机IP更改为MQTT服务器的IP。 对于MQTT服务器,我使用了Mossquitto服务器。
您还必须确保将端口1883转发到服务器。
我用它将股票号码发送到我的手机。已经差不多2年了,否则我可以告诉你更多。
C2DM目录不相关。这是Google当时也在玩的推送通知服务。
在Bitbucket https://bitbucket.org/mjgasner的其他目录中是.NET服务和winforms我编写的用于与MQTT服务器通信的应用程序。该服务将通过服务器接受来自Android应用程序的消息,并使用从谷歌的api中提取的库存数量进行回复。
如果您还有其他问题,请在下方发表评论。