耿贤坤

耿贤坤

这家伙有点懒,还没写个性签名!

  • 财富值50
  • 威望值0
  • 总积分100

个人信息

  • 回复了 的回复

    我服务器那边报missing client data 楼主怎么回事

    不好意思,刚看到,用的是swoole的驱动么

  • 回复了 的回复

    你这个需要安装swoole或者workerman吗

    嗯嗯,需要安装的

  • 回复了 的回复

    楼主!我的mac 命令行 输入这个命令 yii websocket/start 一直报错Unknown command: websocket/start

    有可能是因为没有配置bootstrap造成的

  • 赞了说说
    我是大傻X...
  • 回复了 的回复

    楼主!composer.phar一直报错!之前下载YII框架都没有问题!我从github下载以后不知道文件该放什么位置!能不能详细的说一下!

    贴一下详细的报错信息帮你分析一下,有可能是composer-asset-plugin包版本问题。

    最好不要直接下载源码调用,vendor包最好不要被代码仓库追踪。

  • 回复了 的回复

    楼主 这个能单推消息到 一个用户吗?

    当然可以,channel的接口类声明了两个方法,execute close,分别在websocket消息处理阶段和websocket通道结束阶段触发。

    execute方法就是在消息处理阶段被触发的,它接收两个参数,分别是 $fd 客户端连接ID,及 $data 客户端传输来的数据,同时这个方法的返回值需要以数组的形式返回两个参数,第一个就是$fds表示将消息推送到哪个或哪些个客户端上(多个以数组形式返回),第二个参数$data就表示推送给用户的消息了。

    通过这种方式可以实现根据业务灵活的推送消息了,在 https://github.com/yiiplus/yii2-websocket/tree/master/examples 中,实现了一个直播间推送消息的例子,其中通过yii\redis\ActiveRecord 绑定用户与直播间的关系,就可以实现往指定直播间推送消息的功能了。

    另外,在客户端断开连接时会触发所有 channels 下的 close 方法,你可以用来清理客户端在服务器上与业务的绑定关系。在上面的例子代码中也有使用。

    欢迎尝试,现在文档不太完善,有什么问题随时沟通哦~

  • 回复了 的回复

    不好意思,上面配置描述有误,文章不知为什么没办法修改,将channel 更改为 channels,如下:

    'compoents' => [
        'websocket' => [
            'class' => '\yiiplus\websocket\<dirver>\WebSocket',
            'host' => '127.0.0.1',
            'port' => 9501,
            'channels' => [
                'push-message' => '\xxx\channels\PushMessageChannel', // 配置 channel 对应的执行类
            ],
      ],
    ],
    

    文章已修改

  • 不好意思,上面配置描述有误,文章不知为什么没办法修改,将channel 更改为 channels,如下:

    'compoents' => [
        'websocket' => [
            'class' => '\yiiplus\websocket\<dirver>\WebSocket',
            'host' => '127.0.0.1',
            'port' => 9501,
            'channels' => [
                'push-message' => '\xxx\channels\PushMessageChannel', // 配置 channel 对应的执行类
            ],
      ],
    ],
    
助理 等级规则
100/200
资料完整度
80/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

2

Ta的访客

11