websocket-php简易聊天(保持网页数据通讯)

我的博客:https://blog.thuol.com

说明

需要安装 swoole扩展


websocket-php简易聊天(保持网页数据通讯)_第1张图片

在linux系统下通过命令行执行php文件。(win下没有swoole扩展)

示例代码

1. 前端websocket




    
    Web sockets test
    


    







2. 后台php代码

on('open', function ($ws, $request) {
        // var_dump($request->fd, $request->get, $request->server);
        echo $request->server['remote_addr']."已连接\n";
        $ws->push($request->fd, "hello, welcome.your ip is {$request->server['remote_addr']}\n");
 
        # 广播
        foreach($ws->connections as $fd) {
            $ws->push($fd, "用户{$request->fd}已登录聊天");
        }
    });
 
    # 监听WebSocket消息事件
    $ws->on('message', function (swoole_websocket_server $server, $frame) {
        echo $frame->fd." Message: {$frame->data}\n";
        # 广播
        foreach($server->connections as $fd) {
            $server->push($fd, "用户{$frame->fd}说: {$frame->data}");
        }
 
    });
 
    # 监听WebSocket连接关闭事件
    $ws->on('close', function ($ws, $fd) {
        # var_dump($ws, $fd);
        echo "client-{$fd} is closed\n";
    });
 
    $ws->start();

3. 通过命令行进行启动php

./php /www/wwwroot/a/testa.php

4.测试

分别通过两个不同的浏览器打开前端H5页面(本人使用火狐浏览器和360浏览器),并连接服务器

火狐浏览器


websocket-php简易聊天(保持网页数据通讯)_第2张图片

360浏览器


websocket-php简易聊天(保持网页数据通讯)_第3张图片

发送信息


websocket-php简易聊天(保持网页数据通讯)_第4张图片

后台显示


你可能感兴趣的:(websocket-php简易聊天(保持网页数据通讯))