Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Kommunikation mit JSON RPC (Code im Anhang)

PHP implementiert die Kommunikation mit JSON RPC (Code im Anhang)

藏色散人
藏色散人nach vorne
2023-01-13 10:16:403988Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP und Golang. Er stellt hauptsächlich vor, wie PHP über JSON RPC kommuniziert. Ich hoffe, dass er für Freunde in Not hilfreich ist.

PHP implementiert die Kommunikation mit JSON RPC (Code im Anhang)

php kommuniziert mit Golang über JSON RPC

Diese Methode löst die rechenintensiven Anforderungen der PHP-Verarbeitung.

Ich weiß nicht, warum nicht serverübergreifend darauf zugegriffen werden kann. Wenn Sie es wissen, hinterlassen Sie bitte eine Nachricht.

go Service

package main
import (
"fmt"
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
)
 
type Calc struct{}
 
type Args struct {
A  float64 `json:"a"`
B  float64 `json:"b"`
Op string  `json:"op"`
}
 
type Reply struct {
Msg  string  `json:"msg"`
Data float64 `json:"data"`
}
 
 
// 第一个是参数是获取客户端传来的数据,第二个参数是返回的数据
 
func (c *Calc) Compute(args Args, reply *Reply) error {
var (
msg string = "ok"
)
 
switch args.Op {
case "+":
reply.Data = args.A + args.B
case "-":
reply.Data = args.A - args.B
case "*":
reply.Data = args.A * args.B
case "/":
if args.B == 0 {
msg = "in divide op, B can't be zero"
} else {
reply.Data = args.A / args.B
}
default:
msg = fmt.Sprintf("unsupported op:%s", args.Op)
}
reply.Msg = msg
 
if reply.Msg == "ok" {
return nil
}
return fmt.Errorf(msg)
}
 
 
// 启动server端
func main() {
err := rpc.Register(new(Calc))
 
if err != nil {
panic(err)
}
    
listener, err := net.Listen("tcp", "127.0.0.1:8181")
if err != nil {
panic(err)
}
 
for {
conn, err := listener.Accept()
 
if err != nil {
log.Println(err)
continue
}
 
go jsonrpc.ServeConn(conn)
}
}

php client

rrree

return resultes

rrree

recommended Lernen: "php Video Tutorial"

Das obige ist der detaillierte Inhalt vonPHP implementiert die Kommunikation mit JSON RPC (Code im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen