资讯专栏INFORMATION COLUMN

swoole简单的聊天室demo(修正版)

Sourcelink / 769人阅读

摘要:搜了一下,以前的很多类型文章,都是可能采集的,基本一样,错误都一样,所以自己写了个,发来共享一下。

搜了一下,以前的很多类型文章,都是可能采集的,基本一样,错误都一样,所以自己写了个,发来共享一下。

咱们可是抄袭文档还有互联网的,请确保你的服务器已经安装swoole1.7.7+版本扩展,9502端口未占用而且可以开启

swoole文档:https://wiki.swoole.com/wiki/...

效果:

swoole.html页面




      swoole chat room
      
      


    

swoole.php代码:

set(
    array(
        "daemonize" => false,      // 是否是守护进程
        "max_request" => 10000,    // 最大连接数量
        "dispatch_mode" => 2,
        "debug_mode"=> 1,
        // 心跳检测的设置,自动踢掉掉线的fd
        "heartbeat_check_interval" => 5,
        "heartbeat_idle_time" => 600,
    )
);

//监听WebSocket连接打开事件
$ws->on("open", function ($ws, $request) {
    $ws->push($request->fd, "hello, welcome to chatroom
");
});

//监听WebSocket消息事件,其他:swoole提供了bind方法,支持uid和fd绑定
$ws->on("message", function ($ws, $frame) {
    $msg = "from".$frame->fd.":{$frame->data}
";

    // 分批次发送
    $start_fd = 0;
    while(true)
    {
        // connection_list函数获取现在连接中的fd
        $conn_list = $ws->connection_list($start_fd, 100);   // 获取从fd之后一百个进行发送
        var_dump($conn_list);
        echo count($conn_list);

        if($conn_list === false || count($conn_list) === 0)
        {
            echo "finish
";
            return;
        }

        $start_fd = end($conn_list);
        
        foreach($conn_list as $fd)
        {
            $ws->push($fd, $msg);
        }
    }
});

//监听WebSocket连接关闭事件
$ws->on("close", function ($ws, $fd) {
    echo "client-{$fd} is closed
";
    $ws->close($fd);   // 销毁fd链接信息
});

$ws->start();

然后直接php swoole.php启动swoole就行,多个浏览器访问swoole.html页面,可以模拟聊天室,查看推送。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22638.html

相关文章

  • PHP + Swoole 开发简单天室

    摘要:开发的简单聊天室主要是的应用如果对你学习有帮助欢迎。项目地址环境要求安装启动启动内置服务器浏览器访问即可进入聊天截图 moell/webim PHP + Swoole 开发的简单聊天室 demo, 主要是 websockt 的应用, 如果对你学习Swoole有帮助,欢迎 start 。 项目地址 https://github.com/moell-peng... 环境要求 PHP >=...

    xeblog 评论0 收藏0
  • PHP + Swoole 简单天室

    摘要:开发的简单聊天室主要是的应用。环境要求项目地址安装启动启动内置服务器浏览器访问即可进入聊天截图项目测试地址,由于没开启端口,可能无法运行,需要请联系 Chatroom PHP + Swoole 开发的简单聊天室demo, 主要是 websockt 的应用 。 环境要求 PHP >= 7.0 Swoole composer 项目地址 https://github.com/kesixi...

    qc1iu 评论0 收藏0
  • php只能做网站?基于swoole+websocket开发双向通信应用

    摘要:那么,是否就无法用来开发双向通信的应用呢答案是否定的。内置通信支持,可以与程序基于进行双向通信。通信协议于年被定为标准,并由补充规范。前言 众所周知,PHP用于开发基于HTTP协议的网站应用非常便捷。而HTTP协议是一种单向的通信协议,只能接收客户端的请求,然后响应请求,不能主动向客户端推送信息。因此,一些实时性要求比较高的应用,如实时聊天、直播应用、在线网页游戏等,就不适合采用HTTP协议...

    番茄西红柿 评论0 收藏0
  • php只能做网站?基于swoole+websocket开发双向通信应用

    摘要:那么,是否就无法用来开发双向通信的应用呢答案是否定的。内置通信支持,可以与程序基于进行双向通信。通信协议于年被定为标准,并由补充规范。前言 众所周知,PHP用于开发基于HTTP协议的网站应用非常便捷。而HTTP协议是一种单向的通信协议,只能接收客户端的请求,然后响应请求,不能主动向客户端推送信息。因此,一些实时性要求比较高的应用,如实时聊天、直播应用、在线网页游戏等,就不适合采用HTTP协议...

    琛h。 评论0 收藏0
  • swoole 服务端120行代码构建一个websocket 天室.

    摘要:的异步并行高性能网络通信引擎,使用纯语言编写,提供了语言的异步多线程服务器,异步网络客户端,异步,异步,数据库连接池,,消息队列,毫秒定时器,异步文件读写,异步查询。内置了服务器端客户端服务器端。 swoole :http://www.swoole.com/PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步M...

    韩冰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<