簡體   English   中英

golang WebSocket連接

[英]Golang WebSocket connection

我開始學習 Golang。 我有這個項目,我需要 stream 通過 WebSocket 連接從 API 獲取一些數據,並在控制台中打印出來。

還有一點我不明白——我有一個 URL,所以我可以向它發出請求(通過 .net/http 包),但是我怎樣才能將它升級到 WebSocket?

我可以只使用純 Golang 嗎? 我無法在 inte.net 上找到合適的信息。 所有示例都使用 JS,或者它們使它變得太復雜(比如構建一些應用程序,我不想這樣做,並且由於它的復雜性而根本無法跟進)。

我接到你了。 WebSocket有客戶端和服務器端。 大多數時候人們需要在瀏覽器中運行客戶端。 gorilla 的 websocket 實現同時支持客戶端和服務器。 你可以用它來撥打你的服務器。 這是一個示例代碼。

package main

import (
    "fmt"
    "github.com/gorilla/websocket"
)

func main() {
    ws, _, err := websocket.DefaultDialer.Dial("ws[s]://localhost/path?query", nil)
    if err != nil {
        panic(err)
    }
    defer ws.Close()

    for {
        // Read a message from websocket connection
        _, msg, err := ws.ReadMessage()
        if err != nil {
             return
        }

        fmt.Println(string(msg))

        // uncomment below if you need send message to remote server
        //if err = ws.WriteMessage(websocket.TextMessage, msg); err != nil {
        //  return
        //}
    }
}

這是完整的簡單客戶端和服務器示例: https://github.com/gorilla/websocket/tree/master/examples/echo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM