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

WBOY
Lepaskan: 2023-07-31 16:41:32
asal
1454 orang telah melayarinya

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"
)
Salin selepas log masuk
  1. Tentukan penaik taraf WebSocket:
var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}
Salin selepas log masuk
  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
        }
    }
}
Salin selepas log masuk
  1. :Tentukan
  2. r peminta HTTP pelayan:
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        http.ServeFile(w, r, "index.html")
    }
    Salin selepas log masuk
  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)
    }
    Salin selepas log masuk
    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!