【arvik开源项目】impush简介

前言

impush算是arvik在csdn上开源的第二个项目。该项目是源于在某些情况下服务器需要向路由器主动推送实时消息,借鉴nginx的代码结构做了针对路由器一个简单的消息推送框架,对于其它嵌入式设备也同样适用。

写的时候就想到开源出来了,大多数开源项目都是作者觉得比较得意、拿得出手,才将其开源出来。我的项目一边写就一边开源了,大有实战的味道。童鞋们见到的是一个一步步完善起来的框架,目前第一个版本初稿已经完毕,并且可以测试了

impush是arvik开源的一套消息推送协议,中间件,以及客户端库框架,专门用于嵌入式消息互推。代码100%是由c语言编写,且代码结构清晰,源码行数并不多,且除了标准c库外不依赖其它任何库,安装简洁,代码易于修改定制,非常适合新手学习并应用到自己的项目中。

应用场景

以路由器来说
1. 云服务器收到微信打赏成功后微信发送过来的通知,此时需要立刻对该用户进行流量放行,此时需要一个消息推送机制,将命令立马推送到路由…
2. 用户漫游,当某个用户从一台路由退出连接到另一台路由后还需要能上网,此时就需要一个消息推送机制让消息在这两台路由之间单独传递了…
3. 路由实时管控,服务器主动向指定路由下达相应的命令
4. 嵌入式其它互相有关联的设备相互通信,或设备信息上报

这里写图片描述

项目源码地址:https://github.com/arviklinux/impush

编译

根据机器类型(32位或64位),更改config.in文件, make,make install,ldconfig

使用

场景:服务器向所有客户端推送一条通知。由一个具有广播权限的客户端向服务器上传一条消息,服务器验证权限后将该消息广播推送给所有客户端。
服务器端:

impushserver &

客户端:
这里42.96.130.249是服务器impushserver的ip,童鞋们改为自己的

./imclient -s 42.96.130.249

测试:
使用test.sh脚本,这里模拟1600个客户端登录(为了测试并发量,你可以更改test.sh脚本或以不同的参数多启动几次脚本),另外,使用一个客户端来向服务器定时推送一条消息,让服务器广播给所有客户端
test.sh脚本中参数中的-s 42.96.130.249是服务器impushserver的ip,童鞋们改为自己的

//启动1600个客户端
test.sh 10000000 &
test.sh 10000801 &

//启动推送进程,间隔2秒钟推送"hello impush" 4次到服务器,服务器会将该消息推送至所有客户端
./imclient -s 42.96.130.249 -m "hello impush" -c 2 -t 4

impush程序核心框架以及部分代码是从nginx代码中分离出来的,非常精巧,具体分析见下一篇博客!

猜你喜欢

转载自blog.csdn.net/u012819339/article/details/55504800
今日推荐