Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了golang jsonrpc大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
package main

import (
    "github.com/streadway/amqp"
    "log"
    "net"
    "net/rpc"
    "net/rpc/jsonrpc"
    "os"
    "time"
)

type MPMsg struct {
}

func (mpMsg *MPMsg) Handle(args *map[String]interface{},reply *map[String]interface{}) error {
    *reply = map[String]interface{}{}
    return nil 
}

func main() {
    lf,_ := os.OpenFile("/var/log/"+time.Now().Format("2006-01-02T15:04:05")+".log",os.O_APPEND|os.O_CREATE|os.O_RDWR,0666)
    defer lf.Close()
    log.SetOutput(lf)

    mpMsg := new(MPMsg)
    rpc.Register(mpMsg)

    addr,_ := net.ResolveTCpaddr("tcp",":135")
    ln,e := net.ListenTCP("tcp",addr)
    if e != nil {
        panic(E)
    }   
    for {
        conn,e := ln.Accept()
        if e != nil {
            conTinue
        }
        go jsonrpc.ServeConn(conn)
    }   
}



    // RPC calls.
    rpcClient,e := jsonrpc.Dial("tcp","2d1c07f4-8d2d-11e5-bf81-54ee755d5aba:135")
    if e != nil {
        log.Println("Error dail rpc server:",E)
        http.Error(w,e.Error(),http.StatusInternalServerError)
        return
    }   
    var reply map[String]interface{}
    e = rpcClient.Call("MPMsg.Handle",msg,&reply)
    if e != nil {
        log.Println("Error call rpc method:",http.StatusInternalServerError)
        return
    } 

大佬总结

以上是大佬教程为你收集整理的golang jsonrpc全部内容,希望文章能够帮你解决golang jsonrpc所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:golangjsonrpc