有个网络库叫gorilla, gorilla有个包叫websocket, websocket包有个方法叫upgrade, 这个upgrade方法的第三个参数怎么用的?

cups_book · 2019-07-22 12:21:31 · 2940 次点击

@eudore, 这种写法, 应该是很接近目标的, 但是不知道怎么回事, 用了这种写法, 从http 到 wss 的升级没有完成, 没有得到101, 而是得到了200

image.png

    var responseHeader http.Header
    var cookie = &http.Cookie{
        Name:     "name",
        Value:    "val",
        Secure:   true,
        HttpOnly: true,
    }
    responseHeader.Add("Set-Cookie", cookie.String())
    var conn, err = upgrader.Upgrade(w, r, responseHeader)

如果去掉这段, 写cookie的代码, 就可以顺利切到101

#16
更多评论

..............

你不觉得,如果是websocket链接上上之后,直接发个message回去,网页监听到后set cookie更靠谱么?

另外gorilla是一个网络库,里面有个websocket的包...

#1

1楼 @jarlyyn 谢谢指正, 我修改了标题.

按照你这个思路的话, 我的问题, 就变成了, 怎么识别客户端, 怎么针对某一个具体的客户端, 发送消息

我搜索了很久, 都没有人用过这第三个参数, 你能帮我看看, 它怎么用吗

https://github.com/gorilla/websocket/tree/master/examples/chat

这个例子, 是讲广播的, 好像没有提到怎么针对某个具体的客户端, 发送消息

#2