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

SudoPlz:

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

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

我的Google-Fu技能未能教会我执行此操作的简单方法。

谢谢。

SudoPlz:

没关系,我在网上找到了一些帮助代码。现在我的代码如下所示,以防其他人需要此代码:

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在评论中建议的那样,这里有一个新的大猩猩示例,供那些寻求更好解决方案的示例使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 xrdp 隧道连接到现有的 X 服务器

如何使用Java连接到现有的Kubernetes服务器并列出所有Pod?

无法使用Xpra托管服务器,仅连接到现有服务器

如何使用现有的tcp连接从bash脚本访问http服务器?

我需要使用websockets将ESP8266连接到本地Java服务器的帮助

iOS WebSocket无法使用SocketRocket连接到服务器

iOS本机无法连接到MFP服务器:需要使用安全连接

使用现有的厨师服务器配置厨师零服务器

需要使用 Ansible 检查服务器连接的代码

我需要使用Nginx服务器为node.js项目设置我的域

RxJs WebSocket无法连接到使用socket.io实现的WebSocket服务器

我需要使用定位器查找元素的帮助

如何连接到现有的Jupyter Notebook内核并使用变量浏览器检查变量?

错误:Apollo服务器需要现有的架构,模块或typeDefs

我们需要使用Java NIO实现服务器软件的建议

浏览器未使用Websocket连接到服务器

使用带有无服务器架构在AWS现有的API密钥

如何使用现有的 jenkins 服务器配置 Docker?

我需要使用java但不使用spring boot连接到谷歌云mysql?

JSch - 如果需要 MFA,有没有办法连接到 SFTP 服务器,我收到 SocketTimeoutException

我需要使用触发器连接两个表的数据

使用“连接到服务器”实用程序从debian连接到服务器

我需要使用pyinstaller应用程序打包MySQL服务器/客户端吗?

当我从授权服务器获得 UUID 时,是否需要使用自动生成的列作为主键?

我有一个数组,我需要使用 javascript 更改数组格式

连接到现有的Kafka代理时,ksqlDB服务器无法启动

如何将 Xcode 项目连接到现有的 MsSql 服务器

客户端和服务器是否需要使用相同的端口进行连接?

我需要使用JavaScript来实现具有服务器端搜索功能的多选,最好是使用引导程序