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

cups_book · · 2753 次点击
我的情况是, 客户端是微信公众号, 单页程序. 并且, 不能从外部浏览器打开, 只能从微信里的公众号, 打开,访问. 所以, 不会有同一个浏览器打开两个网页的情况. ``` //websocket设置 var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { //允许跨域 return true }, } func APIWssServerSide(w http.ResponseWriter, r *http.Request) { l.Info("*** apis -> apiswss.go - APIWssServerSide start ***") var responseHeader http.Header var conn, err = upgrader.Upgrade(w, r, responseHeader) l.Info("how to use responseHeader????") if err != nil { l.Fatal(err) } //向所有客户端广播消息 go func(conn *websocket.Conn) { ch := time.Tick(4 * time.Second) for range ch { conn.WriteJSON(myStrcut{ Username: "tothemoon", Firstname: "tom", Lastname: "jerry"}) } }(conn) l.Info("--- apis -> apiswss.go - APIWssServerSide end ---") } type myStrcut struct { Username string `json:"username"` Firstname string `json:"firstName"` Lastname string `json:"lastName"` } ```
#7
更多评论
.............. 你不觉得,如果是websocket链接上上之后,直接发个message回去,网页监听到后set cookie更靠谱么? 另外gorilla是一个网络库,里面有个websocket的包...
#1
1楼 <a href="/user/jarlyyn" title="@jarlyyn">@jarlyyn</a> 谢谢指正, 我修改了标题. 按照你这个思路的话, 我的问题, 就变成了, 怎么识别客户端, 怎么针对某一个具体的客户端, 发送消息 我搜索了很久, 都没有人用过这第三个参数, 你能帮我看看, 它怎么用吗 https://github.com/gorilla/websocket/tree/master/examples/chat 这个例子, 是讲广播的, 好像没有提到怎么针对某个具体的客户端, 发送消息
#2