Skip to content

matyhtf/webim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy