需要从站点中找到动态 wss url

问题描述

这很难解释,因为对于熟悉这一点的人来说可能非常简单,而且语言障碍会使它变得更加困难抱歉。

好的,所以我正在为 mozilla 集线器编写一个机器人。我可以在我的浏览器和“wss”网络选项上进入“开发者工具”,我可以看到 wss 地址并让我的机器人连接到该地址..

问题。

这会改变并且总是与主站点不同。所以我不能只使用 GO gorilla libs 从 https 更新到 wss,因为我不知道 URL。 这必须是可能的,因为浏览器做到了!

所以我看到的所有 wss 示例都是有人在“相同”的 url 上制作了一个 websocket 示例 要访问 mywebsockets.site 只需进行握手,以便它从 http 升级到 wss,但这是一个 diff url .. 当我从浏览器或机器人或任何库发出 get 请求时,如何找到此 url ..

一个例子

package main

import (
    "fmt"

    "github.com/gorilla/websocket"
)


func main() {
    c,_,err := websocket.DefaultDialer.Dial("wss://hubs.mozilla.com/zWXKxxxx/",nil)
    //c,err := websocket.DefaultDialer.Dial("wss://hubs.mozilla.com",nil)

    if err != nil {
        panic(err)
    }
    defer c.Close()

    // do something with c,a *websocket.Conn

    fmt.Println(c)
}

这两者都会在握手时出错,原因是因为不是那个 URL 但浏览器总是可以得到正确的。 通常他们是这样的:

//webSocketSite := "brave-elf.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "peaceful-warlock.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "goofy-druid.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "mystifying-artificer.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "epic-bard.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "zealous-ranger.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "wonderful-psion.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "loving-bard.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "wss://stoic-giant.reticulum.io/socket/websocket?vsn=2.0.0"
    //webSocketSite := "wss://nifty-rogue.reticulum.io/socket/websocket?vsn=2.0.0"
    webSocketSite := "wss://happy-orc.reticulum.io/socket/websocket?vsn=2.0.0"

这一直在变化,所以我需要在浏览器上手动打开我的开发工具并添加它.. 我试图避免手动执行此操作。 如果浏览器可以做到..一定有办法。

对不起,如果这令人困惑或简单。老实说,我找不到这方面的示例,因为所有 WSS 示例都“假设”您总是升级到相同的 URL

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)