{"id":19268779,"url":"https://github.com/walkor/web-msg-sender","last_synced_at":"2025-10-06T01:59:36.296Z","repository":{"id":15861580,"uuid":"18602051","full_name":"walkor/web-msg-sender","owner":"walkor","description":"Web message pusher  written in PHP based on workerman.","archived":false,"fork":false,"pushed_at":"2021-12-21T06:29:39.000Z","size":884,"stargazers_count":925,"open_issues_count":3,"forks_count":407,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-05-08T12:01:54.797Z","etag":null,"topics":["realtime-messaging","websocket","workerman"],"latest_commit_sha":null,"homepage":"http://www.workerman.net/web-sender","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/walkor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"open_collective":"walkor","patreon":"walkor"}},"created_at":"2014-04-09T15:16:51.000Z","updated_at":"2025-03-23T07:05:35.000Z","dependencies_parsed_at":"2022-09-05T07:11:46.407Z","dependency_job_id":null,"html_url":"https://github.com/walkor/web-msg-sender","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walkor%2Fweb-msg-sender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walkor%2Fweb-msg-sender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walkor%2Fweb-msg-sender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walkor%2Fweb-msg-sender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/walkor","download_url":"https://codeload.github.com/walkor/web-msg-sender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254544146,"owners_count":22088807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["realtime-messaging","websocket","workerman"],"created_at":"2024-11-09T20:17:19.956Z","updated_at":"2025-10-06T01:59:31.274Z","avatar_url":"https://github.com/walkor.png","language":"PHP","readme":"web-msg-sender\n==============\n\nWeb消息实时推送，支持在线用户数实时统计。基于[PHPSocket.IO](https://github.com/walkor/phpsocket.io)开发，使用websocket推送数据，当浏览器不支持websocket时自动切换comet推送数据。\n\n效果截图\n======\n![web-msg-sender-demo](http://www.workerman.net/img/web-msg-sender-demo.png)\n \n线上demo  \n======\n\n接收消息页面：[http://www.workerman.net:2123/](http://www.workerman.net:2123/)    \n后端推送接口url：[http://www.workerman.net:2121/?type=publish\u0026to=\u0026content=msgcontent](http://www.workerman.net:2121/?type=publish\u0026to=\u0026content=msgcontent)  \nto为接收消息的uid，如果不传递则向所有人推送消息  \ncontent 为消息内容\n\n注：可以通过php或者其它语言的curl功能实现后台推送\n\n下载安装\n======\n1、git clone https://github.com/walkor/web-msg-sender\n\n2、composer install\n\n后端服务启动停止\n======\n## Linux系统\n### 启动服务\nphp start.php start -d\n### 停止服务\nphp start.php stop\n### 服务状态\nphp start.php status\n\n## windows系统\n双击start_for_win.bat\n\n如果启动不成功请参考 [Workerman手册](http://doc3.workerman.net/install/requirement.html) 配置环境\n\n前端代码类似：\n====\n```javascript\n// 引入前端文件\n\u003cscript src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'\u003e\u003c/script\u003e\n\u003cscript\u003e\n// 初始化io对象\nvar socket = io('http://'+document.domain+':2120');\n// uid 可以为网站用户的uid，作为例子这里用session_id代替\nvar uid = '\u003c?php echo session_id();?\u003e';\n// 当socket连接后发送登录请求\nsocket.on('connect', function(){socket.emit('login', uid);});\n// 当服务端推送来消息时触发，这里简单的aler出来，用户可做成自己的展示效果\nsocket.on('new_msg', function(msg){alert(msg);});\n\u003c/script\u003e\n```\n\n后端调用api向任意用户推送数据\n====\n```php\n\u003c?php\n// 指明给谁推送，为空表示向所有在线用户推送\n$to_uid = '';\n// 推送的url地址，上线时改成自己的服务器地址\n$push_api_url = \"http://workerman.net:2121/\";\n$post_data = array(\n   'type' =\u003e 'publish',\n   'content' =\u003e '这个是推送的测试数据',\n   'to' =\u003e $to_uid, \n);\n$ch = curl_init ();\ncurl_setopt ( $ch, CURLOPT_URL, $push_api_url );\ncurl_setopt ( $ch, CURLOPT_POST, 1 );\ncurl_setopt ( $ch, CURLOPT_HEADER, 0 );\ncurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );\ncurl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );\ncurl_setopt ( $ch, CURLOPT_HTTPHEADER, array(\"Expect:\"));\n$return = curl_exec ( $ch );\ncurl_close ( $ch );\nvar_export($return);\n```\n\n常见问题：\n====\n如果通信不成功检查防火墙   \n/sbin/iptables -I INPUT -p tcp --dport 2120 -j ACCEPT   \n/sbin/iptables -I INPUT -p tcp --dport 2121 -j ACCEPT   \n/sbin/iptables -I INPUT -p tcp --dport 2123 -j ACCEPT    \n\n \nworkerman相关参见 [www.workerman.net](http://www.workerman.net/)\n=================\n\nworkerman更多有趣的应用：\n=======================\n\n[小蝌蚪聊天室](http://kedou.workerman.net) \n\n[多人在线flappy birds](http://www.workerman.net/demos/flappy-bird/)\n\n[其它](http://www.workerman.net/applications)\n\n\n\n","funding_links":["https://opencollective.com/walkor","https://patreon.com/walkor"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalkor%2Fweb-msg-sender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwalkor%2Fweb-msg-sender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalkor%2Fweb-msg-sender/lists"}