项目作者: walkor

项目描述 :
Web message pusher written in PHP based on workerman.
高级语言: PHP
项目地址: git://github.com/walkor/web-msg-sender.git
创建时间: 2014-04-09T15:16:51Z
项目社区:https://github.com/walkor/web-msg-sender

开源协议:MIT License

下载


web-msg-sender

Web消息实时推送,支持在线用户数实时统计。基于PHPSocket.IO开发,使用websocket推送数据,当浏览器不支持websocket时自动切换comet推送数据。

效果截图

web-msg-sender-demo

线上demo

接收消息页面:http://www.workerman.net:2123/
后端推送接口url:http://www.workerman.net:2121/?type=publish&to=&content=msgcontent
to为接收消息的uid,如果不传递则向所有人推送消息
content 为消息内容

注:可以通过php或者其它语言的curl功能实现后台推送

下载安装

1、git clone https://github.com/walkor/web-msg-sender

2、composer install

后端服务启动停止

Linux系统

启动服务

php start.php start -d

停止服务

php start.php stop

服务状态

php start.php status

windows系统

双击start_for_win.bat

如果启动不成功请参考 Workerman手册 配置环境

前端代码类似:

  1. // 引入前端文件
  2. <script src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
  3. <script>
  4. // 初始化io对象
  5. var socket = io('http://'+document.domain+':2120');
  6. // uid 可以为网站用户的uid,作为例子这里用session_id代替
  7. var uid = '<?php echo session_id();?>';
  8. // 当socket连接后发送登录请求
  9. socket.on('connect', function(){socket.emit('login', uid);});
  10. // 当服务端推送来消息时触发,这里简单的aler出来,用户可做成自己的展示效果
  11. socket.on('new_msg', function(msg){alert(msg);});
  12. </script>

后端调用api向任意用户推送数据

  1. <?php
  2. // 指明给谁推送,为空表示向所有在线用户推送
  3. $to_uid = '';
  4. // 推送的url地址,上线时改成自己的服务器地址
  5. $push_api_url = "http://workerman.net:2121/";
  6. $post_data = array(
  7. 'type' => 'publish',
  8. 'content' => '这个是推送的测试数据',
  9. 'to' => $to_uid,
  10. );
  11. $ch = curl_init ();
  12. curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
  13. curl_setopt ( $ch, CURLOPT_POST, 1 );
  14. curl_setopt ( $ch, CURLOPT_HEADER, 0 );
  15. curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
  16. curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
  17. curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:"));
  18. $return = curl_exec ( $ch );
  19. curl_close ( $ch );
  20. 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

workerman更多有趣的应用:

小蝌蚪聊天室

多人在线flappy birds

其它