https://blog.csdn.net/github_26672553/article/details/100172819
之前介绍的方式只适合go系统和go系统之间调用(因为它数据编码使用了go的gob编码格式)。
想要其他异构系统(比如php)调用,就需要使用通用的编码格式,比如JSON。
1、jsonrpc服务端代码:
jsonrpc.ServeConn(client)
一句就搞定服务端代码
go客户端连接:
jsonrpc.Dial("tcp", "127.0.0.1:8080")
2、其他系统比如php中,如何来调用?
<?php
//连接go的rpc服务
$client = stream_socket_client("tcp://127.0.0.1:8080",$errno,$errstr,3);
if (!$client){
echo "$errno:$errstr";
}
//go语言的jsonrpc需要的参数
$str = json_encode(["method"=>"UserServer.GetUserName","params"=>[110],"id"=>0])."\n";
fwrite($client, $str);
echo fgets($client); //{"id":0,"result":"110号用户的名字","error":null}
fclose($client);
本文介绍了RPC的基础知识,并重点讲解了如何使用JSONRPC作为通用编码格式,以便于实现PHP等异构系统间的调用。文中给出了JSONRPC服务端的简单Go代码示例,并提及了PHP客户端调用的方法。

2440

被折叠的 条评论
为什么被折叠?



