qchat安装部署详解(基于Workerman、VUE、GatewayWorker的开源实时聊天插件)

🏷️ det365手机版 📅 2025-08-07 01:18:30 ✍️ admin 👀 8902 ❤️ 211
qchat安装部署详解(基于Workerman、VUE、GatewayWorker的开源实时聊天插件)

一款使用VUE打造的内网办公聊天工具,支持发送图片、文件,群聊,离线消息,消息提醒;类似于WEB版微信 基于 GatewayWorker 的聊天工具的服务端(php) 开源地址:(码云)前端代码https://gitee.com/qice/qchat后端代码https://gitee.com/qice/QchatServer

也可以我打包的代码,不需要下载券,基本与码云一致:https://download.csdn.net/download/weixin_44142296/12563778

qchat安装部署

1 后端软件php 7.0.33redis 5.0.7apache或者nginx

2 前端软件nodejs 8.17.0npm 6.13.4

3 https及wss4 启动方法:前端:后端:

5 websocket接口协议6 redis中的数据1)聊天记录def:record:qun2

2)会话列表def:friend:chuai

3)用户列表def:user

4)群聊列表def:group

1 后端软件

php 7.0.33

网上有很多,比如: linux下使用yum安装新版php7.0

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel

然后需要安装qchat要求的pcntl、posix扩展

yum install php-pcntl, php-posix

redis 5.0.7

linux 安装redis 完整步骤 redis为了存储qchat中的聊天记录、群聊等消息。 在qchat的服务端/qchat/server/QchatServer/Applications/chat/config/redis.php里面配置了redis的1号库,而不是默认的0号库,查看时记得select 1 。

apache或者nginx

apache或者nginx,为了能访问到服务器页面,将vue编译好的dist目录转发,使浏览器可以访问到index.html。其中index.html中的ws://的websocket路径需要变更,后续详细描述。

2 前端软件

nodejs 8.17.0

使用nvm安装node: github地址:https://github.com/nvm-sh/nvm

简书:linux下安装nvm进行node的版本的快速切换

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

然后

source ~/.bashrc

在Linux上,运行安装脚本后,如果nvm: command not found在键入时没有收到终端的反馈command -v nvm,只需关闭当前终端,打开新的终端,然后尝试再次进行验证。

2、通过命令 nvm --version 可查看版本,说明安装成功

3、通过 nvm ls-remote可查看node所有版本

4、通过 nvm install (版本号) 例如:nvm install v8.17.0

5、安装后可通过node -v ,npm -v 查看版本,说明安装成功

npm 6.13.4

npm install的时候比较慢 ,可以查看是否有npm代理 博客园:npm添加代理和取消代理

3 https及wss

workerman怎么配置wss 3.1 /qchat/server/QchatServer/Applications/chat/start_gateway.php中配置wss,将证书的绝对路径写到local_cert和local_pk对应位置 注意:ws协议是ip+端口,wss协议必须是域名+端口

ws://127.0.0.1:8800

wss://www.chuai.com:8800

3.2 浏览器能访问到的dist目录(即apache中vhost下的dist目录或者nginx指定的目录)下的index.html中的var wsUrl = 'wss://www.chuai.com:8800’和var uploadConfig两个变量需要更改成相应地址

4 启动方法:

前端:

先修改 index.html 文件中,wsUrl 和 uploadConfig 这两个地址,分别为WS服务器地址 及文件上传的地址

// 三步曲

//下载依赖

npm install

//测试环境

npm run dev

//正式环境

npm run build

将run之后产生的dist文件放置到浏览器能访问的目录,如apache httpd的vhost目录下。

后端:

修改 Applications/chat/config/redis.php 配置文件,改为自己的redis地址,如果是本机可以不用改 在/qchat/server/QchatServer目录下,运行如下命令启动服务器

php start.php start -d

如要停止:

php start.php stop

如使用kill php的进程的方式关闭,需监控: 8800端口和1238端口

netstat -nalp |grep 8800

netstat -nalp |grep 1238

将相关的进程全部关闭方可再次启动。

5 websocket接口协议

# 登录

{"type":"login","name":"chuai","passwd":"chuai"}

# 好友列表,聊天的列表

{"type":"friend_list"}

# 通知在线,全部用户列表

{"type":"user_list","online":1}

# 获取消息内容,chuai发过来的消息

{"type":"msg_list","group":false,"from":"chuai", "to":"admin"}

# 设置信息全部读取完成

{"type":"mark_read","from":"chuai","to":"admin"}

# 发送消息

{"type":"txt","from":"admin","to":"chuai","msg":"this is test","name":"聊天名字"}

# 发起群聊

{"type":"join_group","create":true,"from":"admin","group_name":"XX群名字","users":["chuai","demo","admin"]}

# 发送群消息

{"type":"txt","from":"admin", "to":"@XX群名字","msg":"hello","name":"admin"}

# 创建用户

{"type":"update_user","name":"demo","passwd":"demo"}

6 redis中的数据

解析:

1)聊天记录

def:record:qun2

def:record: 是聊天记录的前缀,后面的qun2是群的name, 第2条的\xe7\xbe\xa4\xe8\x81\x8a1是中文编码。 该值是redis的列表类型List,使用 如下命令可以查看聊天记录

lrange def:record:qun2 0 -1

2)会话列表

def:friend:chuai

def:friend: 是好友列表的前缀,后面的chuai是用户的name, 该值是redis的hash类型,使用 如下命令可查看所有的好友列表及群聊列表

hgetAll def:friend:chuai

所有redis的hash操作都是可以的,比如

hget def:friend:chuai qun2

hdel def:friend:chuai qun2

3)用户列表

def:user

def:user 是所有用户信息,包括账号、密码、头像等 该值是redis的hash类型,使用 如下命令可查看所有的用户信息

hgetall def:user

或者

hget def:user chuai

4)群聊列表

def:group

def:group 是所有群聊成员信息,即该群里包含的用户 该值是redis的hash类型,使用 如下命令可查看所有的群聊成员信息

hgetall def:group

或者

hget def:group qun2

🎯 相关推荐

如何在Android系统上关闭推送服务,让用户自主掌控通知接收,避免工作与休闲干扰
红米手机怎么辨别真假?超简单方法一看便知!
365bet现金信誉网

红米手机怎么辨别真假?超简单方法一看便知!

📅 07-20 👀 3072
臿筑是什么意思
s365app下载

臿筑是什么意思

📅 07-08 👀 1533