Home
Download
Document
Forum
Video
Donate
Source Code
AI 助理
Sponsors
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
Products
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
基于Swoole+PHP的超高性能短信网关(CMPP、SMPP)模拟器
##概述 在电信领域,是典型的高并发IO场景,传统的PHP根本无法介入到这个领域,直到`Swoole`的出现以及相应协程生态的完善,让`PHPer`也可以做电信领域的核心服务,[沃联](https://wowlian.cn)公司采用`Swoole`作为核心**短信收发服务**,目前每天承载`5亿多条`国内外短信的发送,相对于`Java`和`.Net`开发的竞品,无论稳定性、性能、开发效率都有明显的优势,足以证明`Swoole`协程技术栈目前已经非常成熟稳定,是电信级的成熟解决方案。 项目地址:[https://gitee.com/wolian-message/simulater](https://gitee.com/wolian-message/simulater) ##开源 沃联公司此次开源了基于PHP + Swoole编写的轻量级,超高性能短信网关模拟器--[SmsGateWay](https://gitee.com/wolian-message/simulater),相同配置下性能是Java模拟器(simpleTeam)的10倍,支持CmppV2协议(用于国内短信发送)和SmppV3.4协议(用于国际短信发送),非常适合进行压力测试以及模拟收发短信。 采用此短信通道模拟器,可以进行大规模压力测试,以及模拟短信真实收发场景,压测模拟器在2Core 4G内存服务器,可以达到每秒上万的TPS。 ##使用 [SmsGateWay](https://gitee.com/wolian-message/simulater)非常轻量,支持: - CMPP`压测`模拟器(国内) - CMPP`真实`模拟器(国内) - SMPP`压测`模拟器以及客户端(国际) 使用很简单,拿`真实模拟器`举例 * 安装`Swoole4.4+`扩展和`PHP7.1+` 并clone [SmsGateWay](https://gitee.com/wolian-message/simulater)项目 * cd到 realCMPP 目录 * 参考`config.ini`配置文件注释,按需修改配置文件 ```bash ;服务监听的端口 cmpp_port = 7890 ;给客户端返回的状态码 ;多个以逗号分割 '=>'前面是状态码 '=>'后面是百分比 百分比支持小数 ;百分比加一起必须 '小于等于' 100,如果小于100例如95,表示最终有5%的未知状态 report = 'DELIVRD=>80,UNDELIV=>10,DB:0001=>5' ;返回的状态码的延迟 ;状态报告的延迟时间 '=>'前面是时间范围 '=>'后面是百分比 百分比支持小数 ;百分比加一起必须等于100,例子表示 有80%的状态在5到10秒内返回 有15%的状态在300到400秒内返回 有5%的状态在400到86400秒内返回 report_delay = "5-10=>80,100-400=>15,400-86400=>5" ;产生的上行短信的百分比,例如0.1表示 1000条状态成功(DELIVRD)的短信产生一条回复短信,0表示不产生上行 deliver_rate = 0.1 ;配置上行回复短信内容 '=>'前面是内容 '=>'后面是百分比 百分比加一起必须等于100 deliver_content = 'T=>60,1=>10,退订=>10,不感兴趣=>20' ;上行回复的延迟时间 状态成功后多久推送上行回复 单位秒 ;百分比加一起必须等于100,例子表示 有20%的上行在5到10秒内推送 有80%的上行在100到200秒内推送 deliver_delay = "5-10=>20,100-200=>80" ``` * `php start_simulater.php`启动模拟器
发布于2年前 · 108 次浏览 · 来自
公告
郭新华
##概述 在电信领域,是典型的高并发IO场景,传统的PHP根本无法介入到这个领域,直到`Swoole`的出现以及相应协程生态的完善,让`PHPer`也可以做电信领域的核心服务,[沃联](https://wowlian.cn)公司采用`Swoole`作为核心**短信收发服务**,目前每天承载`5亿多条`国内外短信的发送,相对于`Java`和`.Net`开发的竞品,无论稳定性、性能、开发效率都有明显的优势,足以证明`Swoole`协程技术栈目前已经非常成熟稳定,是电信级的成熟解决方案。 项目地址:[https://gitee.com/wolian-message/simulater](https://gitee.com/wolian-message/simulater) ##开源 沃联公司此次开源了基于PHP + Swoole编写的轻量级,超高性能短信网关模拟器--[SmsGateWay](https://gitee.com/wolian-message/simulater),相同配置下性能是Java模拟器(simpleTeam)的10倍,支持CmppV2协议(用于国内短信发送)和SmppV3.4协议(用于国际短信发送),非常适合进行压力测试以及模拟收发短信。 采用此短信通道模拟器,可以进行大规模压力测试,以及模拟短信真实收发场景,压测模拟器在2Core 4G内存服务器,可以达到每秒上万的TPS。 ##使用 [SmsGateWay](https://gitee.com/wolian-message/simulater)非常轻量,支持: - CMPP`压测`模拟器(国内) - CMPP`真实`模拟器(国内) - SMPP`压测`模拟器以及客户端(国际) 使用很简单,拿`真实模拟器`举例 * 安装`Swoole4.4+`扩展和`PHP7.1+` 并clone [SmsGateWay](https://gitee.com/wolian-message/simulater)项目 * cd到 realCMPP 目录 * 参考`config.ini`配置文件注释,按需修改配置文件 ```bash ;服务监听的端口 cmpp_port = 7890 ;给客户端返回的状态码 ;多个以逗号分割 '=>'前面是状态码 '=>'后面是百分比 百分比支持小数 ;百分比加一起必须 '小于等于' 100,如果小于100例如95,表示最终有5%的未知状态 report = 'DELIVRD=>80,UNDELIV=>10,DB:0001=>5' ;返回的状态码的延迟 ;状态报告的延迟时间 '=>'前面是时间范围 '=>'后面是百分比 百分比支持小数 ;百分比加一起必须等于100,例子表示 有80%的状态在5到10秒内返回 有15%的状态在300到400秒内返回 有5%的状态在400到86400秒内返回 report_delay = "5-10=>80,100-400=>15,400-86400=>5" ;产生的上行短信的百分比,例如0.1表示 1000条状态成功(DELIVRD)的短信产生一条回复短信,0表示不产生上行 deliver_rate = 0.1 ;配置上行回复短信内容 '=>'前面是内容 '=>'后面是百分比 百分比加一起必须等于100 deliver_content = 'T=>60,1=>10,退订=>10,不感兴趣=>20' ;上行回复的延迟时间 状态成功后多久推送上行回复 单位秒 ;百分比加一起必须等于100,例子表示 有20%的上行在5到10秒内推送 有80%的上行在100到200秒内推送 deliver_delay = "5-10=>20,100-200=>80" ``` * `php start_simulater.php`启动模拟器
赞
2
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
还没有评论!
微信公众号
热门内容
作者其它话题
- 报错”WARNING swManager_check_exit_status signal=13“
- Swoole有没有Kafka的协程客户端
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。