swoole之websocket使用

环境:

ubontu14.04(部署在阿里云)
swoole

1、准备:

因为swoole的websocket使用的是9502端口,前提必须保证这些端口都可正常使用,<strong>可以让防火墙运行9502端口访问或者关闭防火墙,另一方面需要在阿里云上配置9502的安全组规则,如下所示</strong>

Paste_Image.png

2、开启服务,

在cli(命令行)中运行 php server.php

Paste_Image.png

server.php

<?php
$ws = new swoole_websocket_server("0.0.0.0", 9502);
$ws->set(array(
    'daemonize' => true,
));
//监听WebSocket连接打开事件
$ws->on('open', function ($ws, $request) {
    var_dump($request->fd, $request->get, $request->server);
    $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();

3、客户端运行html文件

test.html

<html>
<script>
var wsServer = 'ws://47.94.15.218:9502';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
    alert("Connected to WebSocket server.");
};

websocket.onclose = function (evt) {
    alert("Disconnected");
};

websocket.onmessage = function (evt) {
    alert('Retrieved data from server: ' + evt.data);
};

websocket.onerror = function (evt, e) {
    alert('Error occured: ' + evt.data);
};
</script>
</html>

显示连接成功,如下所示

Paste_Image.png
Paste_Image.png

4、查看当前连接数

可运行 lsof -i:9502 进行查看


Paste_Image.png

如上所示,表示当前有5个正在连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139
  • 昨天妞妞说:“明天中午回来吃饭吧” 我说:“好” 大概我知道这应该是最后一次吃她做的饭。 我们一边吃饭一边聊天,聊...
    李小再阅读 404评论 0 5
  • 1我怎么如此的幸运,今天检查的没来,感觉好舒服呀,而且我马上就要歇年休假,我要去武汉啦。 2我怎么如此的幸运?昨天...
    刘慢慢_9744阅读 282评论 0 0