gpt4 book ai didi

go - 我需要使用 go lang 连接到现有的 websocket 服务器

转载 作者:IT王子 更新时间:2023-10-29 01:10:32 25 4
gpt4 key购买 nike

ws://localhost:8080/ws 上我的本地主机中运行了一个 websocket

我需要可以创建 websocket 客户端并连接到该服务器的 go lang 代码。

我的 Google-Fu 技能没能教会我一个简单的方法来做到这一点。

谢谢。

最佳答案

没关系,我在网上找到了一些帮助代码。现在我的代码看起来像这样以防其他人需要它:

package main

import (
"net/http"
"text/template"
"code.google.com/p/go.net/websocket"
"fmt"
"os"
"time"
)


const address string = "localhost:9999"

func main() {

initWebsocketClient()
}


func initWebsocketClient() {
fmt.Println("Starting Client")
ws, err := websocket.Dial(fmt.Sprintf("ws://%s/ws", address), "", fmt.Sprintf("http://%s/", address))
if err != nil {
fmt.Printf("Dial failed: %s\n", err.Error())
os.Exit(1)
}
incomingMessages := make(chan string)
go readClientMessages(ws, incomingMessages)
i := 0
for {
select {
case <-time.After(time.Duration(2e9)):
i++
response := new(Message)
response.RequestID = i
response.Command = "Eject the hot dog."
err = websocket.JSON.Send(ws, response)
if err != nil {
fmt.Printf("Send failed: %s\n", err.Error())
os.Exit(1)
}
case message := <-incomingMessages:
fmt.Println(`Message Received:`,message)


}
}
}

func readClientMessages(ws *websocket.Conn, incomingMessages chan string) {
for {
var message string
// err := websocket.JSON.Receive(ws, &message)
err := websocket.Message.Receive(ws, &message)
if err != nil {
fmt.Printf("Error::: %s\n", err.Error())
return
}
incomingMessages <- message
}
}

另外正如 recoba 在评论中建议的那样,有一个新的 gorilla example here对于那些正在寻找更好的解决方案的人。

关于go - 我需要使用 go lang 连接到现有的 websocket 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32745716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com