下面使用简单的求和函数来示例整个调用过程,当然同时也是支持GO客户端直接发起调用的

PHP客户端代码如下:

public function index(){

        //创建一个客户端
        $client = stream_socket_client("tcp://127.0.0.1:9091", $errno, $errstr);
        if (!$client) {
            exit("{$errno} : {$errstr} \n");
        }
        $data = [
            'method' => "ServiceA.Add",
            'params' => [["x"=>1,"y"=>21]],
            'id'=>0
        ];
        //向服务端发送我们自定义的协议数据
        fwrite($client, json_encode($data,320));
        //读取服务端传来的数据
        $data = fread($client, 2048);
        //关闭客户端
        fclose($client);

        dd($data);
        return $data;

    }

go服务端代码如下:

service := new(ServiceA)
    rpc