Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ketahui fungsi pengaturcaraan rangkaian dalam bahasa Go dan laksanakan komunikasi masa nyata dengan pelayan WebSocket?

Ketahui fungsi pengaturcaraan rangkaian dalam bahasa Go dan laksanakan komunikasi masa nyata dengan pelayan WebSocket?

WBOY
WBOYasal
2023-07-31 16:41:321456semak imbas

Ketahui fungsi pengaturcaraan rangkaian dalam bahasa Go dan laksanakan komunikasi masa nyata dengan pelayan WebSocket

Dalam era Internet hari ini, komunikasi masa nyata menjadi semakin penting dalam banyak aplikasi. Untuk mencapai komunikasi masa nyata, ramai pembangun akan memilih untuk menggunakan protokol WebSocket kerana ia menyediakan cara untuk mencapai komunikasi dua hala antara pelanggan dan pelayan. Dalam artikel ini, kita akan mempelajari fungsi pengaturcaraan rangkaian dalam bahasa Go dan menggunakannya untuk melaksanakan pelayan WebSocket mudah untuk komunikasi masa nyata.

Sebelum kita mula, kita perlu memasang persekitaran pembangunan bahasa Go. Saya tidak akan menerangkan butiran di sini Jika anda belum memasangnya lagi, sila rujuk tapak web rasmi bahasa Go untuk memasangnya.

Pertama, kita perlu menggunakan pakej net/http bahasa Go untuk membina pelayan HTTP asas, dan kemudian gunakan pakej gorila/soket web untuk mengendalikan sambungan WebSocket dengan pelanggan.

  1. Import pakej yang diperlukan:
import (
    "log"
    "net/http"
    "github.com/gorilla/websocket"
)
  1. Tentukan penaik taraf WebSocket:
var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}
  1. Tentukan pengendali WebSocket:
func wsHandler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println(err)
        return
    }

    for {
        messageType, message, err := conn.ReadMessage()
        if err != nil {
            log.Println(err)
            return
        }

        log.Printf("Received message: %s
", message)

        if err := conn.WriteMessage(messageType, message); err != nil {
            log.Println(err)
            return
        }
    }
}
  1. :Tentukan
  2. r peminta HTTP pelayan:
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        http.ServeFile(w, r, "index.html")
    }
  1. Sekarang kami telah melengkapkan pelayan WebSocket yang mudah. Kami boleh membuka fail index.html dalam penyemak imbas dan kemudian menggunakan kod JavaScript untuk berkomunikasi dengan pelayan.
  2. func main() {
        http.HandleFunc("/ws", wsHandler)
        http.HandleFunc("/", helloHandler)
        log.Println("Server starting on localhost:8080")
        http.ListenAndServe(":8080", nil)
    }
Kod di atas boleh diuji dalam pelayar. Mesej boleh dihantar ke pelayan dengan memasukkan mesej dalam kotak input dan mengklik butang hantar. Pelayan akan mengembalikan mesej yang diterima kepada klien sebagaimana adanya dan mengeluarkannya pada konsol. Dengan cara ini, kami telah mencapai komunikasi masa nyata yang mudah.

Dengan mempelajari fungsi pengaturcaraan rangkaian dalam bahasa Go dan menggunakan pakej gorila/soket web untuk mengendalikan sambungan WebSocket, kami boleh melaksanakan pelayan WebSocket dengan mudah untuk komunikasi masa nyata. Bukan itu sahaja, kecekapan dan kesesuaian bahasa Go juga menjadikannya pilihan bahasa yang sangat baik untuk mengendalikan komunikasi masa nyata. Saya harap artikel ini akan membantu anda mempelajari pengaturcaraan rangkaian dalam bahasa Go dan melaksanakan pelayan WebSocket.

Atas ialah kandungan terperinci Ketahui fungsi pengaturcaraan rangkaian dalam bahasa Go dan laksanakan komunikasi masa nyata dengan pelayan WebSocket?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn