yii2扩展 基于swoole的websocket 直播间demo [ 2.0 版本 ]
Yii2 WebSocket
可以做即时通讯,小程序的小游戏等等
前提
服务器安装swoole
git clone https://github.com/swoole/swoole-src.git
cd swoole-src
phpize
./configure --enable-openssl -with-php-config=[PATH] #注意[PATH]为你的php地址 开启ssl用
make && make install
安装
composer执行
composer require "jianyan74/yii2-websocket"
或者在 composer.json
加入
"jianyan74/yii2-websocket": "^1.0"
配置
在 console/config/main.php
加入以下配置。(注意:配置在controllerMap里面)
// webSocket
'websocket' => [
'class' => 'jianyan\websocket\WebSocketController',
'server' => 'jianyan\websocket\WebSocketServer',
'host' => '0.0.0.0',// 监听地址
'port' => 9501,// 监听端口
'config' => [// 标准的swoole配置项都可以再此加入
'daemonize' => false,// 守护进程执行
'task_worker_num' => 4,//task进程的数量
'ssl_cert_file' => '',
'ssl_key_file' => '',
'pid_file' => __DIR__ . '/../../backend/runtime/logs/server.pid',
'log_file' => __DIR__ . '/../../backend/runtime/logs/swoole.log',
'log_level' => 0,
],
],
使用
# 启动
php ./yii websocket/start
# 停止
php ./yii websocket/stop
# 重启
php ./yii websocket/restart
测试
<script>
var wsl = 'wss://[to your url]:9501';
ws = new WebSocket(wsl);// 新建立一个连接
// 如下指定事件处理
ws.onopen = function () {
// ws.send('Test!');
};
// 接收消息
ws.onmessage = function (evt) {
console.log(evt.data);
/*ws.close();*/
};
// 关闭
ws.onclose = function (evt) {
console.log('WebSocketClosed!');
};
// 报错
ws.onerror = function (evt) {
console.log('WebSocketError!');
};
</script>
Demo案例
可直接拉到最下面 点击跳转
简言
注册时间:2015-07-18
最后登录:2023-08-25
在线时长:45小时31分
最后登录:2023-08-25
在线时长:45小时31分
- 粉丝42
- 金钱420
- 威望130
- 积分2170
共 8 条评论
github地址:https://github.com/jianyan74/yii2-websocket
Demo案例地址更换:http://old.rageframe.com/addons/execute.html?route=manual/index&addon=AppManual&name=sys-websocket
为啥没有回复
我曾经问过韩大师swoole能开发直播吗?你们猜韩大师怎么说的
直播直接使用rtmp协议了,swoole是通讯的,不用swoole就可以实现直播的,使用nginx的rtmp模块就行了
直播直接走rtmp协议结合ffmpeg转码,根本就跟swoole没关系咧,swoole就是做通讯
嗯 开源的srs不错
mark,长知识
安装过程遇见点问题,有大神能给点指点吗,
/root/tools/swoole-src/swoole.c:1594:68: error: macro "add_assoc_string" requires 4 arguments, but only 3 given /root/tools/swoole-src/swoole.c:1594: error: ‘add_assoc_string’ undeclared (first use in this function) make: *** [swoole.lo] Error 1
在make的时候
https://blog.csdn.net/hehehhl/article/details/83110330 看下
@简言 感谢,跪谢
害人不浅的东西,百度第一天还以为是官方的,尼玛user_id和clint_id部做绑定的玩意,就是个测试dome也拿来骗人
标题那么大的几个字没看见?怪谁?
@简言 大佬有swoole还有必要用nginx吗,swoole伪静态规则怎么写
swoole做http服务的话还是需要加一层nginx的
嗯嗯,谢谢大佬,nginx才能管理站点,swoole 纯粹就一个服务没那么多功能
@朕的大清完了 用途不一样