stream_socket_sendto(): Զ�����ǿ�ȹر��һ�����е���ӡ�

THINKPHP5 内使用 Gateway::sendToClient($client_id,$str);就会报这个错,最奇怪的是有时候很小概率能成功不报错.烦请解惑
1509073851(1).png
已邀请:

walkor

赞同来自:

把乱码解决下,看不到具体报错定位不了原因的

wubojing - ha

赞同来自:

老哥 你这个问题解决了吗 我也遇到这个问题 烦的一批

SimplerWorker

赞同来自:

我重启电脑后,又正常了。当我重启服务后,又出现这个问题!

namespace app\worker\controller;
use \GatewayWorker\Lib\Gateway;
use think\Db;
use think\Controller;

class Index extends Controller{
public function initUser(){
$uid = input('post.uid');
$client_id = input('post.client_id');
// $uid = $uid ? $uid : 1;
// $client_id = $client_id ? $client_id : "7f00000108fc00000006";
Gateway::$registerAddress = '0.0.0.0:1236';
Gateway::bindUid($client_id, $uid); // 执行到这里就报错了
Gateway::joinGroup($client_id, $uid);
dump($uid);
dump($client_id);
}
public function doSomeThing(){
$arr = Db::query("select * from sw_user");
$json = json_encode($arr,true);
$uid = input('post.uid');
dump($json);
if(!is_array($json)){
// Gateway::sendToAll($json);
// Gateway::sendToClient($client_id,$json);
Gateway::sendToUid($uid,$json);
Gateway::sendToGroup($uid,$json);
}
}
}

xiuwang

赞同来自:

Gateway::$registerAddress = '0.0.0.0:1236';
这个明显错了,应该是ip:1236,ip不能是0.0.0.0

walkor

赞同来自:

看下gatewayClient版本和gateway版本是否一致,不一致无法通讯

bianchao1

赞同来自:

我遇到这个问题,是windows系统,register正常启动后ctrl+c关闭了,再启动register时,thinkPHP框架内的gatewayclient就无法链接register了,这时候重启一下Apache,就又可以链接register的端口了。感觉还是windows系统或者是Apache(我用的PHPstudy)的问题,希望遇到这个问题的人,试一下方法是不是有效,也希望walkor查找下问题原因。

要回复问题请先登录注册