加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 学习资料

swoole 直播

时间:2021-03-21 21:01:01  来源:  作者:
主要使用 webstocket
上代码
前端
观看页面
  1. <script type="text/javascript">
  2. var ws = new WebSocket('ws://192.168.0.150:9502');
  3.  
  4. ws.onopen = function() {
  5.     console.log("连接成功");
  6. };
  7. ws.onmessage = function(e) {
  8.    console.log(e);
  9.  
  10.    var data = e.data;
  11.    document.getElementById('player').src=data;
  12. };
  13. ws.onerror = function() {
  14.     console.log("关闭连接");
  15. };
  16. </script>
复制代码
录像页面
 
最好用火狐测试。
  1. <canvas id="output" style="display:none"></canvas>
  2.  
  3.  
  4.  
  5. <script type="text/javascript" charset="utf-8">
  6.  
  7.  
  8.     var socket = new WebSocket('ws://192.168.0.150:9502');
  9.     //socket.send("嗨我登陆了");
  10.  
  11.     var back = document.getElementById('output');
  12.     var backcontext = back.getContext('2d');
  13.     var video = document.getElementsByTagName('video')[0];
  14.    
  15.     var success = function(stream){
  16.         video.src = window.URL.createObjectURL(stream);
  17.     }
  18.  
  19.     socket.onopen = function(){
  20.         draw();
  21.     }
  22.  
  23.     var draw = function(){
  24.         try{
  25.             backcontext.drawImage(video,0,0, back.width, back.height);
  26.         }catch(e){
  27.             if (e.name == "NS_ERROR_NOT_AVAILABLE") {
  28.                 return setTimeout(draw, 100);
  29.             } else {
  30.                 throw e;
  31.             }
  32.         }
  33.         if(video.src){
  34.             socket.send(back.toDataURL("image/jpeg", 0.5));
  35.         }
  36.         setTimeout(draw, 100);
  37.     }
  38.     navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
  39.     navigator.mozGetUserMedia || navigator.msGetUserMedia;
  40.     navigator.getUserMedia({video:true, audio:false}, success, console.log);
  41. </script>
复制代码
  1. php
  2.  
  3. $server = new swoole_websocket_server("0.0.0.0", 9502);
  4.  
  5. $server->on('open', function (swoole_websocket_server $server, $request) {
  6.  
  7.     echo "新用户id:{$request->fd}加入了\n";
  8.    // echo "server: handshake success with fd{$request->fd}\n";
  9. });
  10.  
  11. $server->on('message', function (swoole_websocket_server $server, $frame) {
  12.  
  13.     //循环所有数据
  14.     foreach($server->connections as $fd) {
  15.         //返回数据
  16.         $server->push($fd, $frame->data);
  17.     }
  18.  
  19. });
  20.  
  21. $server->on('close', function ($ser, $fd) {
  22.     echo "用户id: {$fd} 退出\n";
  23. });
  24.  
  25. $server->start();
复制代码


 
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
实现php间隔一段时间执行一次某段代码
实现php间隔一段时间
相关文章
    无相关信息
栏目更新
栏目热门