第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。
特化的构造器函数有下面几个:
- func NewTCPClient(uri ...string) (client *TCPClient)
他们分别返回 net/http 客户端、TCP 客户端、Unix Socket 客户端、fasthttp 客户端和 WebSocket 客户端。
这几个客户端的结构体对象指针都实现了 接口。
对于 fasthttp 客户端和 net/http 客户端来说,它们只接受 http
和 https
开头的地址。
对于 TCP 客户端,只接受 tcp
、tcp4
和 tcp6
开头的地址。
对于 Unix Socket 客户端,只接受 unix
开头的地址。
对于 WebSocket 客户端,只接受 和 wss
开头的地址。
使用工厂构造器函数创建客户端
- func NewClient(uri ...string) Client
该方法也是接受 1 个或多个服务器地址,且地址开始的 scheme 部分必须相同。
该方法接受 http
, https
, tcp
, tcp4
, tcp6
, , ws
, wss
开头的地址。该方法会根据所指定的 scheme 来自动识别该创建哪种具体的客户端对象。
如果指定的是 http
、https
的地址,默认情况下是返回 net/http 的客户端。
你可以使用 import _ "github.com/hprose/hprose-golang/rpc/fasthttp"
方式来初始化 fasthttp 的客户端,例如:
使用 WebSocket 客户端时,也需要使用 import _ "github.com/hprose/hprose-golang/rpc/websocket"
方式来初始化 WebSocket 的客户端,例如:
- import (
- "github.com/hprose/hprose-golang/rpc"
- )
- client := rpc.NewClient("ws://127.0.0.1:8080/")