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实时双工通信! 可以做一个实时聊天室,或者弹幕系统,以后慢慢学习!

猜你喜欢

转载自www.cnblogs.com/leedom/p/9370030.html