您好,欢迎访问一九零五行业门户网

laravel怎么通过rpc调用golang程序

下面由laravel教程栏目给大家介绍laravel怎么通过rpc调用golang程序 ,希望对需要的朋友有所帮助!
golang 服务端package mainimport (    fmt    net    net/rpc    net/rpc/jsonrpc)type goods struct{}//方法(必须是公有方法,且必须是两个参数)func (g *goods) getname(args string , res *string) error {    *res = args= + args    return nil}func main() {    //注册rpc服务,并自定义服务名    err := rpc.registername(goods,new(goods))    if err != nil {        panic(err.error())    }    //监听端口,如果监听所有客户端则去掉ip    listen, err := net.listen(tcp, 127.0.0.1:7081)    if err != nil {        panic(err.error())    }    fmt.println(启动服务...)    for {        conn, err := listen.accept() // 接收客户端连接请求        if err != nil {            continue        }        go jsonrpc.serveconn(conn)    }}
php 客户端public function test(){      $host = '127.0.0.1';      $port = '7081';      $conn = fsockopen($host, $port, $errno, $errstr, 3);      if (!$conn) {          dd('链接失败');      }      $method = 'goods.getname';      $params = 我是字符串参数;      $err = fwrite($conn, json_encode(array(              'method' => $method,              'params' => [$params],              'id' => 0,          )).\n);     if ($err === false){         dd('写入数据失败');      }     stream_set_timeout($conn, 0, 30000);//超时配置     $line = fgets($conn);     if ($line === false) {         dd('获取响应数据失败');      }     dd(json_decode($line,true));}
返回结果array:3 [  id => 0  result => args=我是字符串参数  error => null]
推荐:最新的五个laravel视频教程
以上就是laravel怎么通过rpc调用golang程序的详细内容。
其它类似信息

推荐信息