同步操作将从 Nishan/thinksocketio 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
一个使用PHPSocket.IO,ThinkPHP5.1,以及JQ实现的聊天室,包括功能有:
广场公频聊天: 一对一私聊: 广播推送系统消息: 指定用户推送消息:
以下说明假定已经为项目public
目录绑定了域名test.com
并正确部署服务器,访问test.com
能看到TP5默认首页。
如果修改了配置或者代码,请重新运行服务端,否则代码不生效。
git clone git@github.com:hsu1943/thinksocketio.git
cd thinksocketio
composer install -vvv
模板文件/application/socketio/view/index/index.html
和/application/socketio/view/index/chat.html
中socket
修改为你的socket
服务端地址,默认测试端口2021,端口号可以在/config/socketio/param.php
中配置。这里是本机测试,用http://127.0.0.1:2021
。
var socket = io('http://127.0.0.1:2021');
如果你需要使用数据库存储消息,按照下面的步骤打开配置,打开配置后系统会根据昵称将所有聊天记录写入数据库msg
表中,包括主动推送的消息;
config/database.php
中配置数据库,保证数据库能正确连接;msg.sql
到数据库;config/socketio/param.php
中将save_msg
修改为true
(默认是false
,不写入到数据库);这里说明一下,请保证数据库能正确连接并且里面有正确的表结构(第二步导入表)再进行第三步配置。
修改配置文件/config/socketio/param.php
中的配置为监听消息推送地址,这里本地测试,使用本地2121端口;
return [
'ws' => [
'apiHost' => 'http://127.0.0.1:2121',
],
];
该地址即系统推送消息地址,参数:
to:接收人
content:消息
两种用法:
向username推送系统消息
http://test.com/system?to=username&content=系统推送消息测试
广播消息
http://test.com/system?content=系统推送消息测试
http://test.com/system
这是本项目使用上面的监听地址做的一个消息推送demo,详情看源代码。
已将推送封装在Msg的模型中,使用:
$res = Msg::send($to, $content);
return $res == 'ok' ? '系统消息推送成功' : '系统消息推送失败';
运行服务端:
php ./public/server.php
这里可以将输出写到某个日志文件中,或者使用supervisor
来管理服务端。
访问以下地址即可进入公频:
http://test.com/socketio
点击消息列表中的用户名即可进入私聊。
以下两篇文章是在开发过程中的记录,代码不是最新,最新代码以本项目github
为准,有问题可以去文章里留言。
ThinkPHP 5.1+PHPSocket.IO实现websocket搭建聊天室+私聊
ThinkPHP 5.1下使用PHPSocket.IO实现websocket通讯
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。