webim

使用PHP+Swoole实现的网页即时聊天工具

  • 所有者: matyhtf/webim
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

WebIM

使用PHP+Swoole4实现的网页即时聊天工具,在线体验地址:http://webim.swoole.com/

  • 基于Swoole4协程实现,可以同时支持数百万TCP连接在线
  • 基于WebSocket+Http Comet支持所有浏览器/客户端/移动端
  • 支持单聊/群聊/组聊等功能
  • 聊天记录使用MySQL存储
  • 用户列表和在线信息使用Redis存储
  • 基于Server PUSH的即时内容更新,登录/登出/状态变更/消息等会内容即时更新
  • 支持发送链接/图片/语音/视频/文件(开发中)
  • 支持Web端直接管理所有在线用户和群组(开发中)

依赖

需要Swoole-4.4.7或更高版本

pecl install swoole

部署说明

安装依赖的 Composer 包

composer install

修改配置

  • 配置configs/redis.php中的Redis服务器信息,用户列表和信息会存到Redis
  • 配置configs/db.php中数据库信息,聊天记录会存储到MySQL
  • 导入MySQL表接口到对应的数据库中

表结构

CREATE TABLE `webim_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `name` varchar(64) COLLATE utf8mb4_bin NOT NULL,
  `avatar` varchar(255) COLLATE utf8mb4_bin NOT NULL,
  `type` varchar(12) COLLATE utf8mb4_bin NOT NULL,
  `msg` text COLLATE utf8mb4_bin NOT NULL,
  `send_ip` varchar(20) COLLATE utf8mb4_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
  • 修改configs/webim.php中的选项,设置服务器的URL和端口
$config['server'] = array(
    //监听的HOST
    'host' => '0.0.0.0',
    //监听的端口
    'port' => '9503',
    //配置域名 [可选]
    'name' => 'im.swoole.com',
);
  • server.hostserver.port 项为WebIM服务器即WebSocket服务器的地址与端口
  • server.name配置使用的域名(可选),如果未设置将直接使用IP:PORT进行访问
  • 监听804431024以内端口需要root权限

启动服务器

php server.php

配置域名解析或者本地 Host [可选]

  • 直接使用IP:PORT,这里不需要设置。直接打开 http://IP:PORT/ 即可
  • 外网域名需要配置DNS解析
  • 本机域名需要修改/etc/hosts,增加127.0.0.1 im.swoole.com本机域名绑定

配置成功后,可以使用浏览器打开,如:http://im.swoole.com:9503/

以上仅为示例,实际项目需要修改为对应的域名

主要指標

概覽
名稱與所有者matyhtf/webim
主編程語言PHP
編程語言PHP (語言數: 3)
平台
許可證
所有者活动
創建於2014-04-23 14:07:59
推送於2020-07-23 10:01:15
最后一次提交2017-07-14 10:16:24
發布數0
用户参与
星數1.8k
關注者數149
派生數649
提交數89
已啟用問題?
問題數56
打開的問題數38
拉請求數4
打開的拉請求數2
關閉的拉請求數3
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?