swoole学习(二)----搭建server和client
1.搭建server
1.1搭建server.php
1.搭建websocket服务器,首先建立 server.php 文件,
1 <?php 2 $server = new swoole_websocket_server('0.0.0.0', 9502);// 创建swoole的websocket实例 其中 0.0.0.0 代表监听所有回路 包括127.0.0.1 和 192.168.*.* 和 外部IP, 端口是9502 3 4 //监听打开事件 5 $server->on('open', function ($server, $request){ 6 var_dump($request->fd, $request->get, $request->server); 7 $server->push($request->fd, "我是open\n"); 8 }); 9 10 //监听消息事件 11 $server->on('message', function ($server, $message){ 12 echo "Message: {$message->data}\n"; 13 $server->push($message->fd, "服务器给的: {$message->data}"); 14 }); 15 16 //监听关闭事件 17 $server->on('close', function ($server, $fd){ 18 echo "客户端: {$fd} 关闭了"; 19 }); 20 21 $server->start();
$server->push("客户端ID", "推送信息"); 这个方法是server向client推送信息的方法;
server 的 on 事件监听有 open : 连接成功事件
message : 收到信息事件
close : 客户端关闭事件
2.运行server.php文件 php server.php
2.搭建client
2.1 搭建client.html
1.创建client.html,主要使用 js 的 WebSocket()
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 9 </body> 10 <script> 11 var wsServer = 'ws://192.168.33.10:9502'; 12 var websocket = new WebSocket(wsServer); 13 websocket.onopen = function (evt) { 14 console.log("连接到服务器"); 15 }; 16 17 websocket.onclose = function (evt) { 18 console.log("连接关闭"); 19 }; 20 21 websocket.onmessage = function (evt) { 22 console.log('收到服务器信息' + evt.data); 23 }; 24 25 websocket.onerror = function (evt, e) { 26 console.log('错误信息: ' + evt.data); 27 }; 28 </script> 29 </html>
2.参数说明: var wsServer = 'ws://192.168.33.10:9502';
ws: 代表使用websocket协议
ip地址 是server的地址
3.监听事件 onopen : 客户端连接到服务器的时候触发
onclose : 客户端关闭的时候触发
onmessage : 收到服务器信息的时候触发
onerror : 发生错误的时候触发,包括连接错误,发送、接收信息的时候出现错误触发
3.测试连接
3.1客户端连接
输出正常
3.2服务器连接
输出正常!
4.总结
swoole的 websocket 服务器搭建成功,当客户端请求服务器的时候,客户端执行了onopen事件,触发了console.log,服务器端当client连接的时候,触发了onopen,打印了fd,和客户端请求头信息;
这样就搭建成功了server和client实时双工通信! 可以做一个实时聊天室,或者弹幕系统,以后慢慢学习!
下一篇: HTML第二章:列表,表格,媒体元素