`

mqtt向android推送消息(一)——发送端使用.net

阅读更多

 

使用.net进行mqtt协议通讯,主要是为了开发居于mqtt协议向android推送消息,使用.net开发可以参考mqtt.org上面的库,我用的是M2MQTT,网上资料很少,具体例子如下:
一、消息发布:
if (this.sender == null)
            {
                this.sender = new MqttClient(IPAddress.Parse(host), 1883);
                //var mqttClient = new MqttClient("localhost");
                this.sender.Connect("sender");
            }
            this.sender.Publish("mobileGKTopic", System.Text.Encoding.Default.GetBytes(textBox2.Text));
 二、消息接收
 mqttClient = new MqttClient(IPAddress.Parse(host), 1883);
            //mqttClient = new MqttClient("localhost");
            mqttClient.Connect("Receiver");
            mqttClient.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(mqttClient_MqttMsgPublishReceived);

            

            mqttClient.Subscribe(new string[] { "testTopic" }, new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE });

private void mqttClient_MqttMsgPublishReceived(object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishEventArgs e)
        {
            //throw new NotImplementedException();
            var msg = System.Text.Encoding.Default.GetString(e.Message);
            if (!String.IsNullOrEmpty(msg))
            {
                textBox1.AppendText(Environment.NewLine);
                textBox1.AppendText(msg);
            }
        }
 需要注意的是,编译mqtt库时要把条件编译SSL关闭,SSL的编译我还没有高清。


 
  • 大小: 19.4 KB
3
0
分享到:
评论
5 楼 Yunba云巴 2016-12-05  
我们https://yunba.io/也是基于MQTT协议实现的实时通信系统,消息推送只是我们其中的一项产品服务。也说下我们做消息推送的一点心得吧。

实现Android推送方面,客户端在集成我们的 Android SDK后,服务端便可通过 SDK 或使用 RESTful API,向 Android 客户端发消息。另外,Android推送已经集成华为、小米第三方推送。

考虑到消息的实时性,我们Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,从而保证了消息推送的实时性。

同样为了保证消息能够被送达,我们 SDK 支持 离线消息 的功能,可保证消息送达客户端。

也就是说,在推送消息时,如果客户端当前不在线,消息将暂存在云巴服务器上(多达 50 条,长达 15 天)。 当客户端上线并成功连接到云巴的服务器后,服务器会把离线消息推送给该客户端。客户端成功接收后,服务器才会删除保存的离线消息。
4 楼 FengZiIT 2016-09-07  
GoEasyweb 推送基于websocket 和polling两种实现,兼容IE6-IE11的所有IE浏览器以及其它主流浏览器。它提供了Restful API支持各个开发语言。服务稳定,文档齐全。官网:http://goeasy.io
3 楼 liuxuliang 2015-11-02  
问下 这是什么原因 Connection attempt using unsupported protocol MQTT version 4 received   qq:1713305363
2 楼 tedeum 2015-02-05  
xiguapigeiwochi 写道
可不可以给个完整的代码啊
QQ:511657675

用到的代码在上面已经很完整了,只用到发送部分。
1 楼 xiguapigeiwochi 2015-02-04  
可不可以给个完整的代码啊
QQ:511657675

相关推荐

Global site tag (gtag.js) - Google Analytics