Swoole学习第三天

时间:2019-10-23
本文章向大家介绍Swoole学习第三天,主要包括Swoole学习第三天使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前几天项目比较忙,今天继续学习

Swoole_webscoket_server 

server端代码,测试的发现一个坑,可真的是坑死我了

//创建websocket服务器对象,监听0.0.0.0:9502端口
$ws = new swoole_websocket_server("0.0.0.0", 9502);
$ws->set(
    [
        'enable_static_handler' => true,
        'document_root' => "/data/www",
    ]
);
//监听WebSocket连接打开事件
$ws->on('open', function ($ws, $request) {
    $ws->push($request->fd, "hello, welcome\n");
});

//监听WebSocket消息事件
$ws->on('message', function ($ws, $frame) {
    echo "Message: {$frame->data}\n";
    $ws->push($frame->fd, "server: {$frame->data}");
});

//监听WebSocket连接关闭事件
$ws->on('close', function ($ws, $fd) {
    echo "client-{$fd} is closed\n";
});

$ws->start();

client端代码

<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>WS Client</h1>
<script>

    var wsUrl = "ws://127.0.0.1:9502";

    var ws = new WebSocket(wsUrl);

    ws.onopen = function (evt) {
        ws.send('hello swoole');
        console.log('conected-success');
    };

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

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

    ws.onerror = function (evt,e) {
        console.log('error:' + e.error + '\n');
    }

</script>
</body>
</html>

  碰到一个错误: WebSocket connection to 'ws://127.0.0.1:9502/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSE

这个错误是因为我在云服务器运行的 在本地电脑访问html文件,所以一直没办法建立正确链接webscoket,这里

var wsUrl = "ws://127.0.0.1:9502";

要写成云服务器的IP才可以正确访问,还有记得端口要开放,还有防火墙设置

原文地址:https://www.cnblogs.com/caoql/p/11727123.html