请问WEBSOCKET如何获取域名后面的路径 ?

tongxinmao

如 ws://wenda.com/path

如果获取这个path

6833 5 0
5个回答

walkor

http://doc.workerman.net/appendices/about-websocket.html
手册有

$ws = new Worker('Websocket://0.0.0.0:8181');
$ws->onConnect = function($connection)
{
    // websocket 握手时可以获得$_GET
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        var_dump($_GET);
    };
};
  • 暂无评论
tongxinmao

在WORKER里获取了这个路径 后,我把它放在$_SESSION里,然在在业务处理EVENT.PHP中读这个$_SESSION中是空的,请教如何处理

  • 暂无评论
walkor

GatewayWorker中不支持event.php中获取这个路径

  • 暂无评论
tongxinmao

每次Gateway进程转发消息给BusibuessWorker进程时,都会顺便携带上对应客户端的$_SESSION数据给BusibuessWorker进程,这时BusibuessWorker进程就能使用$_SESSION了

文档里不是说可以的? 这两个进程共享数据还是有必要的吧?

  • 暂无评论
walkor

都会顺便携带上对应客户端的$_SESSION数据给BusibuessWorker进程。

说的是对应客户端的$_SESSION数据,不是说在gateway设置个全局$_SESSION变量,就传到event.php中去了,这个session数据是存储在每个gateway的连接对象里面的。在gateway进程中设置的$_SESSION变量根本无法确认是属于哪个连接对象,更不要说传递了,只有在event.php中才能设置连接的session,gateway进程对$_SESSION的操作都是无效的。

  • 暂无评论
年代过于久远,无法发表回答
🔝