HTTP服务不起作用

时间:2018-08-02 20:20:34

标签: http go rpc

我正在尝试使用Hprose在Go中实现RPC服务器。它工作正常,但是在添加更多功能后却没有:/

有趣的是,即使在其他http库(例如fasthttp)上,它也不起作用。 ListenAndServe()方法似乎在执行期间停留在某个位置,因为它永远不会返回。可能是什么原因造成的?

package main


import (
    "net/http"
    "fmt"
     "github.com/hprose/hprose-golang/rpc"
    log "logutil"
)

func main() {
    log.InitializeLogger()
    InitializeEthClient()
    InitializeClients()
    server := rpc.NewHTTPService()

    // TxtStorage functions
    server.AddFunction("DeployTxtStorage", DeployNewTxtStorage)
    server.AddFunction("GetPackedData", GetPackedData)
    server.AddFunction("GetReputation", GetReputation)
    server.AddFunction("GetEventsForReputation", GetEventsForReputation)
    server.AddFunction("GetEventsForData", GetEventsForData)

    // Clients functions
    server.AddFunction("RegisterClient", RegisterClient)

    log.Info("Registered server functions!")
    err := http.ListenAndServe(":8080", server)
    fmt.Println(err)
    log.Info("Waiting for incoming connections...")
    log.WriteAway()
}

1 个答案:

答案 0 :(得分:0)

ListenAndServe正在阻止,除非遇到错误,否则它不会返回。您似乎希望最后一行打印出来

Waiting for incoming connections...

但是,随着服务器的运行,这将永远不会发生。您确定它不仅能按预期工作吗?