*socket后端程序采用GatewayWorker框架(开发手册:http://doc4.workerman.net/642185)
前端配置socket配置
在全局配置(根目录/config/index.js)中配置相关sokect接口地址
路径:根目录/config/index.js
eg: 请更换自己的域名和端口号
const LIVESOKECT = 'wss://xxxx:8273/';
域名:xxxx
端口号:8273
前端使用说明
# /根目录/utils/im.js 基于uni-app封装,有断线重连、心跳检测、发送消息等功能
# /根目录/utils/index.js EventEmitter类,事件订阅类,用户全局监听消息事件、发布消息事件
import IM from '@/utils/im'
Vue.prototype.$IM = new IM()
// 链接初始化
this.$IM.imInit()
// 断线重连
this.$IM.manualReconnect()
// 监听消息,在App页面监听webscoket消息,在通过事件订阅模式对订阅消息事件的页面实时推送消息
// App.vue
uni.onSocketMessage(res => {
const e = JSON.parse(res.data)
if (e.type !== 'pong') {
this.$eventEmitter.emit('msg', e)
}
})
// 监听消息页面
this.$eventEmitter.on('msg', e => {
if (e.type === 'say') {
// 业务逻辑
}
})
// 发送消息
uni.sendSocketMessage({
data: JSON.stringify({
})
})
// 断开链接
this.$IM.close()
后端使用说明
### 文件路径
站点根目录/im/
### SSL证书配置
**socket默认启用SSL证书配置,**文件位置:根目录/im/Applications/Front/start_gateway.php
```php
$context = array(
'ssl' => array(
'local_cert' => '/项目地址/ssl/full_chain.pem',
'local_pk' => '/项目地址/ssl/private.key',
'verify_peer' => false,
)
);
Socket数据库配置
修改数据库配置:根目录/im/Applications/Front/Events.php
PHP设置
服务器端PHP版本必须解禁函数:pcntl_signal、pcntl_signal_dispatch、pcntl_fork、pcntl_wait、pcntl_alarm PHP安装Redis扩展
安装Redis
**服务器安装Redis(端口默认设置为:6379)
放行端口
服务器安全组和宝塔面板都要放行端口:8273
启动socket服务
启动命令(守护进程模式):
生产环境使用守护进程模式
php /网站目录/im/start.php restart -d
启动命令(调试模式):
开发环境使用调试模式 代码中echo、var_dump、print等打印函数会直接输出在终端; 异常信息会直接输出在终端;
php /网站目录/im/start.php restart
*建议:在宝塔面板-计划任务,创建一个任务