$task = new AsyncTcpConnection('Text://127.0.0.1:8281');
$task->connect();
$task_data = array(
'function'=>'login',
'args'=>$args,
);
$task -> send(json_encode($task_data));
$task -> onMessage = function ($task , $task_result) use($client_id)
{
$send_result=json_decode($task_result,true);
$new_message=$send_result;
if(!empty($new_message))
{
**我想在这里使用bindUid和sendToUid,但是没用。**
}
echo json_encode($send_result);
$task -> close();
};
_我的问题?这是一个登陆接口,走的是异步,我想登陆成功后,使用bindUid和sendToUid,但是好像在异步回调里面可用,请问大大怎么解决。?_
没用的现象具体是?
就算是我这样写死
//Gateway::bindUid($client_id,'2015100117125184803');
//Gateway::sendToUid('2015100117125184803','hellohello');
客户端还是收不到使用,gateway:sendToAll就可以,而且
Gateway::bindUid
Gateway::sendToUid
这两个函数在异步中现在无效了。
你要确认下onMessage是否有调用,确认bindUid 和 sendToUid是否有调用到,并确认参数是否正确
onMessage我确定调用了,在里面使用gateway:sendToAll都可以,参数也无错误,我写在外面就可以发送,写在异步回调中,就没用。
好,稍后我测试下
异步时确实无法bindUid,已经修复,重新下载一份代码即可
重新下载一份workerman还是所有的?
workerman-3.1.9-stable,我测试了,还是不可
bindUid 是GatewayWorker中的方法,当然是下载gatewayWorker