php-golang-rpc spiral/goridge库和php spiral/goridge2.4.5实践

golang 代码:

package main

import (

    "fmt"

    "net"

    "net/rpc"

    "github.com/spiral/goridge/v2"

)

type App struct{}

func (*App) Hi(name string, r *string) error {

    *r = fmt.Sprintf("hello %s!", name)

    return nil

}

type Ceshi struct{}

func (*Ceshi) Demo(name string, r *string) error {

    *r = fmt.Sprintf("hello %s!", name)

    return nil

}

func main() {

    ln, err := net.Listen("tcp", ":6001")

    if err != nil {

        panic(err)

    }

    rpc.Register(new(App))

    rpc.Register(new(Ceshi))

    for {

        conn, err := ln.Accept()

        if err != nil {

            continue

        }

        go rpc.ServeCodec(goridge.NewCodec(conn))

    }

}

/****************************************************************/

php代码:

use Spiral\Goridge\RPC;
use Spiral\Goridge\Relay;

$rpc = new RPC(Relay::create('tcp://127.0.0.1:6001'));
echo $rpc->call("Ceshi.Demo", "ceshi");文章来源地址https://uudwc.com/A/mJrdv

原文地址:https://blog.csdn.net/qq_32421489/article/details/131940916

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月31日 13:06
深入理解Java类加载机制中的双亲委派模型--根据源码探讨
下一篇 2023年07月31日 13:06