欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

swoole学习(二)----搭建server和client

程序员文章站 2023-01-19 12:14:23
1.搭建server 1.1搭建server.php 1.搭建websocket服务器,首先建立 server.php 文件, $server->push("客户端ID", "推送信息"); 这个方法是server向client推送信息的方法; server 的 on 事件监听有 open : 连接 ......

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
    swoole学习(二)----搭建server和client

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客户端连接

  swoole学习(二)----搭建server和client

  输出正常

  3.2服务器连接

  swoole学习(二)----搭建server和client

  输出正常!

4.总结

  swoole的 websocket 服务器搭建成功,当客户端请求服务器的时候,客户端执行了onopen事件,触发了console.log,服务器端当client连接的时候,触发了onopen,打印了fd,和客户端请求头信息;

这样就搭建成功了server和client实时双工通信! 可以做一个实时聊天室,或者弹幕系统,以后慢慢学习!