同步操作将从 Taurus12C/SwooleIM 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
一款基于 swoole的聊天工具的服务端(即时通讯),支持发送图片文件、历史记录等,类似WEB微信,可根据自己需求进行扩展更多丰富的功能
软件架构说明
|—— src
|——lib
|——core 核心处理文件
|——db 数据库连接池
|——handle 主要业务处理方法性状
|——log 日志处理
|——Server.php 服务基类
|——config.php 配置文件
|——index.php 启动文件
目前仅支持下载使用,后续待完善
启动方法与swoole保持一致,切换到根目录使用
php index.php
执行即可。本项目所需扩展与swoole保持一致,使用前请导入/src/lib/db/swooleim.sql
数据库,并且使用composer安装本项目所需依赖
可以在/src/lib/handle/OnMessage.php
中添加自定义的业务逻辑处理方法,
方法名对应前端send()
数据中的'type'
字段,示例:
ws = new WebSocket(url);
let data = {
'type' : 'online',
...
};
ws.send(JSON.stringify(data));
/*
* 此时上述send对应的处理方法为/src/lib/handle/OnMessage.php
* 中的 function online(){}方法
*/
private function online($server, $frame){
$msg = json_decode($frame->data,true);
$server->bind($frame->fd,$msg['user_id']);
$this->core->online($msg['user_id']);
$this->broadcast([
'type' => 'online',
'user_id' => $msg['user_id']
]);
}
/src/lib/core/handle.php
中均为处理与数据库等服务交互的方法,
例如聊天记录,用户的在线情况等。在OnMessage.php
中可以使用
$this->core->function()
调用,core中的数据库使用连接池实现,使用
$db = $this->db->get();
获取,处理完逻辑后请使用$this->db->put($db);
归还
全局可以使用Log::DEBUG("DEBUG");Log::WARN("WARN");Log::ERROR("ERROR");Log::INFO("INFO");
方法来记录日志
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。