swoole的websocket的服务以及数据交互

首先,整理一下socket服务的脚本websoket.php

$server = new swoole_websocket_server("0.0.0.0",8812);
//监听websocket连接打开事件
$server->on('open','onOpen');
function onOpen($server,$request){
	print_r($request->fd);
}
/*
$server->on('open', function (swoole_websocket_server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});
*/

//消息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "this is server sucess:".$frame->data);//把数据push到客户端 推送数据
});

//客户端关闭事件
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});

$server->start();

创建一个前端websoket.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>websocket</title>
	</head>
	<body>
<script>
	var wsUrl = "ws://192.168.31.129:8812";
	var websocket = new WebSocket(wsUrl);
	
	//势力花对性的onopen属性
	websocket.onopen = function(evt){
		websocket.send('hello Server');
		console.log('connect-swoole-sucess');
	}
	//实例化 onmessage
	websocket.onmessage = function(evt){
	
		console.log("ws-server-data"+evt.data);
	}	

	//onclose
	websocket.onclose = function(evt){
		console.log("close");
	}
	//error
	websocket.onerror=function(evt,e){
		console.log("error:"+evt.data);
	}
</script>
	<h1>websoket ceshi</h1>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_17040587/article/details/82909520
今日推荐