按照手冊的操作
public onMessage($client_id, $message)
{
$group = 'room-1';
$_SESSION = $message;
$_SESSION = $message;
Gateway::joinGroup($client_id, $group);
var_export(Gateway::getClientSessionsByGroup($group));
}
應(yīng)該打印出來是
array(
'7f00000108fc00000008' => array('name'=>'Tom', 'sex'=>1),
'7f00000108fc00000009' => array('name'=>'Joan', 'sex'=>0),
)
但是我打印的只有client_id
win下 laravel框架
這是為什么,感謝
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public onMessage($client_id, $message)
{
$group = 'room-1';
$_SESSION = $message;
$_SESSION = $message;
Gateway::joinGroup($client_id, $group);
var_export(Gateway::getClientSessionsByGroup($group));
}
...
}
手冊里的教程是在GatewayWorker容器里的,是在Events.php里操作GatewayWorker容器對應(yīng)客戶端的$_SESSION變量。所以可以正常返回。
你的代碼是在是在apache/php-fpm環(huán)境這樣的webserver容器里的,
利用GatewayClient遠程操作GatewayWorker。直接用$_SESSION變量只會影響本地apache/php-fpm,
對于遠程GatewayWorker不會有效。Gateway手冊http://doc2.workerman.net/326141也有講到webserver里的$_SESSION和GatewayWorker是不互通的。
雖然GatewayClient不能通過$_SESSION變量來操作GatewayWorker的session,
但是仍然可以通過Gateway::setSession/getSession/updateSession接口遠程操作GatewayWorker的session,參見http://doc2.workerman.net/326149。所以把$_SESSION操作換成響應(yīng)的接口即可。