在 GatewayWorker 下使用 GateWay::sendToAll($cmd,$client_id_array); 傳送資料出現錯誤。

flimulus

在 GatewayWorker 下使用 GateWay::sendToAll($cmd,$client_id_array); 傳送資料出現錯誤。

$client_id_array 是client_id array 不是 null;

public static function encode($data)
    {
        $flag = (int)is_scalar($data);
        if (!$flag) {
            $data = serialize($data);
        }
        $ext_len     = strlen($data);**<-- $data 是 Array;****

        $package_len = self::HEAD_LEN + $ext_len + strlen($data);
        return pack("NCNnNnNCnN", $package_len,
            $data, $data,
            $data, $data,
            $data, $data,
            $flag, $data,
            $ext_len) . $data . $data;
    }
PHP Warning:  strlen() expects parameter 1 to be string, array given in workerman/GatewayWorker/Protocols/GatewayProtocol.php on line 161

GatewayProtocol.php 編碼錯誤。

2865 2 0
2个回答

flimulus

抱歉,問題已解決,參數傳成多層陣列。

walkor

好的

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