laravel+GatewayWorker 完成IM即时通信以及文件互传功能(第一章:基础配置篇)
效果展示
功能简介
本专题将带手把手带你搭建 仿某信的 即时通信功能 并完成文件互传
应用场景
本专题实际应用场景:
- 聊天客服:即时通信,消息实时互传,互相发送文字、语音消息以及文件;
- 小规模线上竞拍;
- 视频实时弹幕;
- 物联网;
- 以及其他与实时消息相关的功能;
专题章节
第一章:配置篇
一、所需工具
1.服务器一台
2.laravel基础矿建
3.基础开发环境(我的服务器环境Linux+Nginx+PHP+Redis+Mysql)注意:wss服务要求PHP版本>=5.6,因为微信小程序要求tls1.2,而PHP5.6以下版本不支持tls1.2,不明白也没关系,你直接用>=php7的版本就行
4.域名(可选,没有域名的话我们使用公网IP也是可以实现的)
5.域名的HTTPS证书(可选)
二、配置服务器
1.开发必要端口,根据GatewayWorker手册
开放
registerAddress注册服务地址端口:1238
websocket协议端口:8282
Redis服务端口:6379
注意registerAddress注册服务地址端口与websocket协议端口这2个端口是自定义的,不用一定和我的开放的端口一样只要保证这2个端口没被占用就可以,另外注意:端口不能大于65535,请确认端口没有被其它程序占用,否则启动会报错。如果端口小于1024,需要root权限运行GatewayWorker才能有权限监听,否则报错没有权限
2.这是我的端口开放情况
3.为了演示方便我这里选择宝塔面板,如果你也是宝塔面板用户请在此页面根据实际需求再次开放你的端口,不然服务器安全组里面开了,宝塔面板不开放相应端口,则端口依然无法使用;
4.开始下载必要的拓展
- redis拓展(不是必装,主要用于保存临时聊天记录)
- Swoole4拓展
- imagemagick(Imagick高性能图形库)
- fileinfo拓展(没这个拓展可能会地址前端无法上传文件到php)
- 注意:我已经安装了相应的拓展,但是实际代码开发中拓展不生效,此时要注意php的禁用函数问题,去看看是不是有那些危险函数被禁用了导致的功能不生效。
5.配置Redis拓展的密码