Skip to content

youanming/thinksocketio

 
 

Repository files navigation

简介

一个使用PHPSocket.IOThinkPHP5.1,以及JQ实现的聊天室,包括功能有:

  • 公频广场聊天
  • 自定义用户名
  • 一对一私聊
  • 公频中私聊信息提醒
  • 新用户加入以及离开提醒
  • 在线用户列表,人数统计
  • 系统主动推送广播,或向指定用户推送消息

截图

广场公频聊天: 广场公频聊天 一对一私聊: 一对一私聊 广播推送系统消息: 广播推送系统消息 指定用户推送消息: 指定用户推送消息

使用说明

安装

git clone git@github.com:hsu1943/thinksocketio.git
cd thinksocketio
composer install

配置

模板文件index.htmlchat.htmlsocket修改为你的socket服务端地址。

var socket = io('http://127.0.0.1:2021');

如果需要使用数据库存储聊天记录消息,导入根目录下socketio.sql,配置正确的数据库连接。 不用的话需要将源代码中数据库存储语句注释。

主动推送系统消息接口

修改配置文件/config/socketio/app.php中的配置为监听消息推送地址:

return [
    'ws' => [
        'apiHost' => 'http://127.0.0.1:2121',
    ],
];

该地址即系统推送消息地址,参数:

to:接收人
content:消息

两种用法:

  1. 其他项目POST,GET请求接口即可推送消息
向username推送系统消息
http://test.com/system?to=username&content=系统推送消息测试
广播消息
http://test.com/system?content=系统推送消息测试

http://test.com/system这是本项目使用上面的监听地址做的一个消息推送demo,详情看源代码。

  1. 本项目中推送系统消息:

    已将推送封装在Msg的模型中,使用:

$res = Msg::send($to, $content);
return $res == 'ok' ? '系统消息推送成功' : '系统消息推送失败';

测试

运行服务端:

php ./public/server.php

访问以下地址即可进入公频:

http://test.com/socketio

点击消息列表中的用户名即可进入私聊。

更新

  • 2019-06-19 增加在线人数统计,在线用户列表,修改昵称,添加系统主动推送接口(广播或私信);

开发记录

以下两篇文章是在开发过程中的记录,代码不是最新,最新代码以本项目为准,有问题可以去文章里留言。

ThinkPHP 5.1+PHPSocket.IO实现websocket搭建聊天室+私聊

ThinkPHP 5.1下使用PHPSocket.IO实现websocket通讯

感谢

About

ThinkPHP5.1 + PHPSocket.IO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PHP 78.0%
  • HTML 18.1%
  • TSQL 2.6%
  • CSS 1.3%