真小白求一个简单的思路^_^

adminx

前端POST请求接口文件(a.php),a.php文件连接websocket(ws_test.php),前端POST成功之后,a.php向websocket推送一个字符串(假如是success),然后websocket再将特定的字符串推送前端给指定的uid,前端不直接发送(假如是success)的原因考虑到前端暴露,规避一些恶意推送行为,这样前端连接websocket只发心跳。目前的问题是a.php怎么和ws_test.php建立连接或者打通。

544 3 0
3个回答

tj224589

  • adminx 2022-05-13

    谢谢,我先去热一下workerman的文档,用的workerman,你画的图我能看懂,实现代码a.php怎么和ws_test.php建立连接或者打通,应该还有很长的路,我先去试下官网的监听看行不行。

latin
没茅台

webman 使用websocket 我选了GatewayWorker,没用插件webman/push,是因为不想vue项目里面引入push.js (有解决办法可以留言)

webman安装GatewayWorker教程
https://www.workerman.net/doc/gateway-worker/webman.html

在webman控制器使用GatewayWorker

    use GatewayClient\Gateway;

    public function wss(Request $request)
    {
        //$registerAddress 在config/plugin/webman/gateway-worker/process.php 里面设置ip和端口 默认不动
        Gateway::$registerAddress = '0.0.0.0:1236';
        $user_id =1;
        if (Gateway::isUidOnline($user_id)) {
            Gateway::sendToUid($user_id, 'user_message');
            return success('在线');
        } else {
            return success('离线');
        }
    }
  • 暂无评论
🔝