swoole视频直播

php7必须安装swoole模块。

$serv=new swoole_websocket_server("0.0.0.0",9501);
$client=array();
$serv->on("open",function($serv,$req)use($client){
	//echo 'connect'.$req->fd;
	$client[]=$req;
	//var_dump($client);
	$serv->push($req->fd,'aa');
});

$serv->on("message",function($serv,$frame)use ($client){
	/*var_dump($frame->data);
	foreach($client as $key =>$val){
		$serv->push($val->fd,'aa');
	}*/
	$client=$serv->connection_list();
	var_dump($client);
	foreach($client as $key =>$val){
		if($val!=$frame->fd){
			$serv->push($val,$frame->data);
		}
	}
	
});

$serv->on("close",function($serv,$fd){
	echo 'close';
});

$serv->start();
<!doctype html>
<html>
<head>
<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404</title>
<style>
	body{
		background-color:#444;
		font-size:14px;
	}
	h3{
		font-size:60px;
		color:#eee;
		text-align:center;
		padding-top:30px;
		font-weight:normal;
	}
</style>
</head>

<body>
<video src="test.mp4" width="400" id="video" autoplay="true" controls="true"></video>
<canvas width="400" id="canvas" height="400" style="display:none"></canvas>
<canvas width="400" id="canvas2" height="400" ></canvas>
<script>
var video=document.getElementById('video');
var canvas=document.getElementById('canvas');
var canvas2=document.getElementById('canvas2');
var context=canvas.getContext('2d');
var context2=canvas2.getContext('2d');
function draw(){
	context.drawImage(video,0,0,400,400);
	ws.send(canvas.toDataURL('image/jpeg',0.8));
	setTimeout(draw,800);
}

//客户端跟服务端通讯
if (window.MozWebSocket)
{
	ws = new MozWebSocket("ws://182.61.42.187:9501");
} else
{
	ws = new WebSocket("ws://182.61.42.187:9501");
}

ws.onopen=function(event){
	alert('连接成功');
	ws.binaryType = 'arraybuffer';
	draw();
}
ws.onmessage=function(event){
	//alert(event.data);
	//ws.send(event.data+"client");
	qrCodeImg = new Image();
	qrCodeImg.src = event.data;
	context2.drawImage(qrCodeImg, 0, 0, 400, 400);
	
}
ws.onclose=function(event){
	alert('close');
}
ws.onerror=function(event){
	alert('error');
}
//video,标签模拟视频

</script>
</body>
</html>


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>客户端直播页面</title>
</head>
<body>
<img id="receiver" style="width:720px;height:480px">

<script type="text/javascript" charset="utf-8">
var receiver_socket = new WebSocket("ws://182.61.42.187:9501");
var image = document.getElementById('receiver');
receiver_socket.onmessage = function(data) {
	console.log(data.data);
	image.src = data.data;
}
</script>
</body>
</html>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值