Go websocket集协议和源
我使用这个库: 如何设置协议和来源 代码:Go websocket集协议和源,go,websocket,Go,Websocket,我使用这个库: 如何设置协议和来源 代码: func InitWSSClient(url1, protocol, origin string) { u := url.URL{Scheme: "ws", Host: url1} fmt.Println(url1,u.String()) d :=websocket.DefaultDialer //c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
func InitWSSClient(url1, protocol, origin string) {
u := url.URL{Scheme: "ws", Host: url1}
fmt.Println(url1,u.String())
d :=websocket.DefaultDialer
//c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
c, _, err :=d.Dial(u.String(),nil)
var limit int64 =1024 * 1024 *32
if err != nil {
log.Fatal("dial:", err)
}
c.SetReadLimit(limit)
go readWSMessage(c)
go sendWSmessage(c)
}
func readWSMessage(ws *websocket.Conn) error {
for {
_,message,err := ws.ReadMessage()
if err != nil {
log15.Error("receiveWebsocket ", "error", err)
panic("error")
}
assignmentWebsocket(string(message))
}
}
func sendWSmessage(ws *websocket.Conn) error {
for {
select {
case params := <-WebsocketParams:
fmt.Println("ws send messages", params)
err :=ws.WriteMessage(websocket.TextMessage,[]byte(params))
if err != nil {
log15.Error("receiveWebsocket ", "error", err)
panic("error")
}
}
}
}
如何在gorilla/websocket/中实现此功能,请提供帮助。
我尝试了很多解决方案,但都不起作用。如果你知道任何解决办法
找到解决方案:
d := websocket.DefaultDialer
d.Subprotocols = []string{protocol}
header :=http.Header{}
header.Set("origin",origin)
我找到了解决方案,你可以这样设置
u := url.URL{Scheme: "ws", Host: url1}
d := websocket.DefaultDialer
d.Subprotocols = []string{protocol}
header := http.Header{}
header.Set("origin", origin)
c, _, err := d.Dial(u.String(), header)
你应该回答你自己的问题,并把你的解决方案放在那里。因此,对于有相同问题的人来说,找到您的解决方案会更容易。@horex,我询问时没有启用此设置。我以后会注意的。thks
u := url.URL{Scheme: "ws", Host: url1}
d := websocket.DefaultDialer
d.Subprotocols = []string{protocol}
header := http.Header{}
header.Set("origin", origin)
c, _, err := d.Dial(u.String(), header)