swoole 学习笔记(3)-- WebSocket

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16399991/article/details/81284530

swoole 文档

1服务端代码:

<?php
/**
 * Created by PhpStorm.
 * User: 
 * Date: 2018/7/22
 * Time: 15:12
 */
$server = new swoole_websocket_server("0.0.0.0", 8813);

//$server->set([]);

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

//监听ws消息事件
$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");
});

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

$server->start();

2 客户端

新建一个html文件 是按websocket客户端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    var wsUrl = 'ws://xx.xx.xx.xx:8813';
    var webSocket = new WebSocket(wsUrl);
    webSocket.onopen = function (evt) {
        console.log('conected-success');
    }

    webSocket.onmessage = function (evt) {
        console.log('server-return:' + evt.data);
    }

    webSocket.onclose = function (evt) {
        console.log('close');
    }

    webSocket.onerror =function (evt, e) {
        console.log('error' + evt.data)
    }
</script>
</body>
</html>

3.测试

  1.    启动服务端
  2. 启动客户端

  

上图三行 分别为 “连接成功,收到消息,关闭客户端” 的输出信息

猜你喜欢

转载自blog.csdn.net/qq_16399991/article/details/81284530