我如何连接到 golang 中的第 3 方 ws 服务作为 golang 中的大猩猩的客户端?还是不可能?
How do I connect to a 3rd party ws service in golang as a client with gorilla in golang? Or is it not possible?
我只想使用 gorilla websocket 包连接到交易 ws 地址,但我只能找到 Web 套接字实现的服务器端。如何连接到 ws 地址和来自它的 send/receive 消息。有代码示例吗?
您可以将 Websocket 视为服务器和客户端之间的直接信息管道 - 就像 Unix 管道一样,信息可以从两端发送和接收。
gorilla/websocket
就是这样工作的。您需要查看第 29-50 行中的 here,了解如何连接到 websocket 服务器并读取从服务器端发送的消息。总之,发个消息:
// c *websocket.Conn needs to be initialized from websocket.DefaultDialer.Dial
err := c.WriteMessage(websocket.TextMessage, []byte("Hello, World!"))
并阅读消息:
messageType, msg, err := c.ReadMessage()
您可能不需要或关心调用 c.ReadMessage()
返回的 messageType
,但以防万一,它在 Websocket RFC Spec 中定义:
|Opcode | Meaning | Reference |
-+--------+-------------------------------------+-----------|
| 0 | Continuation Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 1 | Text Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 2 | Binary Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 8 | Connection Close Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 9 | Ping Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 10 | Pong Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
我只想使用 gorilla websocket 包连接到交易 ws 地址,但我只能找到 Web 套接字实现的服务器端。如何连接到 ws 地址和来自它的 send/receive 消息。有代码示例吗?
您可以将 Websocket 视为服务器和客户端之间的直接信息管道 - 就像 Unix 管道一样,信息可以从两端发送和接收。
gorilla/websocket
就是这样工作的。您需要查看第 29-50 行中的 here,了解如何连接到 websocket 服务器并读取从服务器端发送的消息。总之,发个消息:
// c *websocket.Conn needs to be initialized from websocket.DefaultDialer.Dial
err := c.WriteMessage(websocket.TextMessage, []byte("Hello, World!"))
并阅读消息:
messageType, msg, err := c.ReadMessage()
您可能不需要或关心调用 c.ReadMessage()
返回的 messageType
,但以防万一,它在 Websocket RFC Spec 中定义:
|Opcode | Meaning | Reference |
-+--------+-------------------------------------+-----------|
| 0 | Continuation Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 1 | Text Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 2 | Binary Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 8 | Connection Close Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 9 | Ping Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|
| 10 | Pong Frame | RFC 6455 |
-+--------+-------------------------------------+-----------|