多平台轻量级消息推送系统msgd

一,现状及目的

随着互联网和物联网的发展,消息通信和交互不再仅限于人与人,而充斥于人与人、人与物、物与物之间;消息通信的主体也跨越各平台,

PC(Windows, OSX, Linux等),移动端(Android,IOS,WP等)及电子设备(MCU,ARM等)。

目前常用的消息推送机制有:基于HTTP的轮循、基于XMPP、基于MQTT及第三方的推送系统(如极光、云巴等),每种机制都有其优劣,

具体可网上搜索或参考http://blog.csdn.net/thetryndamere/article/details/53141696。考虑到大部分推送收费、代码不可控、功能强大但是臃肿、

平台扩展等因素,本人基于C语言开发了一套msgd,可实现设备间点对点私密消息交互、以组为单元的群消息推送。


最近看到百度的天工物接入的一个技术视频,主旨是介绍IOT消息推送和数据交互,《如何做一个千万级并发的物联网接入架构》,很值得学习下 。

http://edu.csdn.net/course/detail/2970


二,支持平台

经过努力,目前已实现使用平台有:windows、Linux、 android、OSX、ESP8266 non-os,后续有需要,会继续扩展使用平台。


三,接口说明

msgd分服务端和客户端,接口分两部分。

服务端:

/*
* function:  msgd_manager_init
* Target: initialize the server object and get the handle
*
* para: handle---return handle of the manager instanse
* 	    localIp---the local IP addr to bind when host has multi network hw, default 127.0.0.1
* 	    listenPort---the port for tcp listen
*
* return: =0---successful
* 		-1---failed
*/
DLLEXPORT int32_t msgd_manager_init(MSGDMNGHandle *handle, char *localIp, int listenPort);

/*
* function:  msgd_manager_set_listener
* Target: set the callback function to recv the connection event from subcriber and publisher
*
* para: handle---the handle create in ms

你可能感兴趣的:(IOT,消息推送,物联网,c语言,esp8266,mqtt)