1 Star 6 Fork 3

Taurus12C / SwooleIM

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

SwooleIM

介绍

一款基于 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安装本项目所需依赖

  1. 可以在/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']
        ]);
    }
  2. /src/lib/core/handle.php中均为处理与数据库等服务交互的方法, 例如聊天记录,用户的在线情况等。在OnMessage.php中可以使用 $this->core->function()调用,core中的数据库使用连接池实现,使用 $db = $this->db->get();获取,处理完逻辑后请使用$this->db->put($db); 归还

  3. 全局可以使用Log::DEBUG("DEBUG");Log::WARN("WARN");Log::ERROR("ERROR");Log::INFO("INFO"); 方法来记录日志

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

码云特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. 码云官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解码云上的优秀开源项目
  4. GVP 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
  5. 码云官方提供的使用手册 https://gitee.com/help
  6. 码云封面人物是一档用来展示码云会员风采的栏目 https://gitee.com/gitee-stars/
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

一款基于 swoole的聊天工具的服务端(即时通讯),支持发送图片文件、历史记录等,类似WEB微信,可根据自己需求进行扩展更多丰富的功能 展开 收起
PHP
WTFPL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/Taurus12C/swoole-im.git
git@gitee.com:Taurus12C/swoole-im.git
Taurus12C
swoole-im
SwooleIM
master

搜索帮助