久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么使用Go語言實現WebSocket通信

257次閱讀
沒有評論

共計 1331 個字符,預計需要花費 4 分鐘才能閱讀完成。

在 Go 語言中實現 WebSocket 通信,可以使用標準庫中提供的 net/httpgithub.com/gorilla/websocket包。以下是一個簡單的示例:

package main

import ("fmt"
	"net/http"

	"github.com/gorilla/websocket"
)

var upgrader = websocket.Upgrader{CheckOrigin: func(r *http.Request) bool {return true
	},
}

func handler(w http.ResponseWriter, r *http.Request) {conn, err := upgrader.Upgrade(w, r, nil)
	if err != nil {fmt.Println("Error upgrading to WebSocket:", err)
		return
	}

	for {// 讀取客戶端發送的消息
		_, message, err := conn.ReadMessage()
		if err != nil {fmt.Println("Error reading message:", err)
			break
		}

		// 輸出客戶端發送的消息
		fmt.Printf("Received message: %s\n", message)

		// 發送消息給客戶端
		err = conn.WriteMessage(websocket.TextMessage, []byte("Message received"))
		if err != nil {fmt.Println("Error writing message:", err)
			break
		}
	}
}

func main() {http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

在上面的代碼中,我們首先創建了一個 upgrader 實例,用于將 HTTP 連接升級為 WebSocket 連接。然后定義了一個處理函數 handler,當有客戶端連接時會調用該函數。在處理函數中,我們通過upgrader.Upgrade 方法將 HTTP 連接升級為 WebSocket 連接,并通過 conn.ReadMessage 讀取客戶端發送的消息,然后通過 conn.WriteMessage 發送消息給客戶端。

最后在 main 函數中,我們通過 http.HandleFunc 將處理函數注冊到路由上,然后通過 http.ListenAndServe 啟動 HTTP 服務器,監聽在 8080 端口上。

在客戶端可以使用 JavaScript 來與該 WebSocket 服務器進行通信,例如:

const ws = new WebSocket("ws://localhost:8080/");

ws.onopen = function() {console.log("Connected to WebSocket server");
    ws.send("Hello, server!");
};

ws.onmessage = function(event) {console.log("Received message from server:", event.data);
};

通過這種方式,可以使用 Go 語言實現 WebSocket 通信。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-04-15發表,共計1331字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 荣昌县| 敦煌市| 永城市| 石景山区| 文昌市| 巴林左旗| 达州市| 白朗县| 万全县| 淮滨县| 墨江| 天祝| 宁蒗| 宜良县| 四川省| 定南县| 绥棱县| 漠河县| 旬阳县| 巴东县| 阜新市| 大姚县| 绥中县| 天水市| 江阴市| 华宁县| 班玛县| 铜山县| 扎兰屯市| 兴业县| 丹凤县| 定安县| 于都县| 新昌县| 冷水江市| 台江县| 博白县| 大城县| 平塘县| 石狮市| 鞍山市|