Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/walkor/web-msg-sender
Web message pusher written in PHP based on workerman.
https://github.com/walkor/web-msg-sender
realtime-messaging websocket workerman
Last synced: 4 days ago
JSON representation
Web message pusher written in PHP based on workerman.
- Host: GitHub
- URL: https://github.com/walkor/web-msg-sender
- Owner: walkor
- License: mit
- Created: 2014-04-09T15:16:51.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-12-21T06:29:39.000Z (about 3 years ago)
- Last Synced: 2024-10-29T10:37:30.088Z (3 months ago)
- Topics: realtime-messaging, websocket, workerman
- Language: PHP
- Homepage: http://www.workerman.net/web-sender
- Size: 863 KB
- Stars: 926
- Watchers: 75
- Forks: 408
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: MIT-LICENSE.txt
Awesome Lists containing this project
README
web-msg-sender
==============Web消息实时推送,支持在线用户数实时统计。基于[PHPSocket.IO](https://github.com/walkor/phpsocket.io)开发,使用websocket推送数据,当浏览器不支持websocket时自动切换comet推送数据。
效果截图
======
![web-msg-sender-demo](http://www.workerman.net/img/web-msg-sender-demo.png)
线上demo
======接收消息页面:[http://www.workerman.net:2123/](http://www.workerman.net:2123/)
后端推送接口url:[http://www.workerman.net:2121/?type=publish&to=&content=msgcontent](http://www.workerman.net:2121/?type=publish&to=&content=msgcontent)
to为接收消息的uid,如果不传递则向所有人推送消息
content 为消息内容注:可以通过php或者其它语言的curl功能实现后台推送
下载安装
======
1、git clone https://github.com/walkor/web-msg-sender2、composer install
后端服务启动停止
======
## Linux系统
### 启动服务
php start.php start -d
### 停止服务
php start.php stop
### 服务状态
php start.php status## windows系统
双击start_for_win.bat如果启动不成功请参考 [Workerman手册](http://doc3.workerman.net/install/requirement.html) 配置环境
前端代码类似:
====
```javascript
// 引入前端文件// 初始化io对象
var socket = io('http://'+document.domain+':2120');
// uid 可以为网站用户的uid,作为例子这里用session_id代替
var uid = '<?php echo session_id();?>';
// 当socket连接后发送登录请求
socket.on('connect', function(){socket.emit('login', uid);});
// 当服务端推送来消息时触发,这里简单的aler出来,用户可做成自己的展示效果
socket.on('new_msg', function(msg){alert(msg);});```
后端调用api向任意用户推送数据
====
```php
'publish',
'content' => '这个是推送的测试数据',
'to' => $to_uid,
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:"));
$return = curl_exec ( $ch );
curl_close ( $ch );
var_export($return);
```常见问题:
====
如果通信不成功检查防火墙
/sbin/iptables -I INPUT -p tcp --dport 2120 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2123 -j ACCEPT
workerman相关参见 [www.workerman.net](http://www.workerman.net/)
=================workerman更多有趣的应用:
=======================[小蝌蚪聊天室](http://kedou.workerman.net)
[多人在线flappy birds](http://www.workerman.net/demos/flappy-bird/)
[其它](http://www.workerman.net/applications)