websocket代理出现问题
来源:8-3 websocket代理如此简单

慕工程7462913
2020-11-04
代理服务器启动之后下面打印的是2003(socket测试服务器)端口,默认监听的不是自己的端口(2002)和老师演示的结果不一样
socket测试服务器(2003端口)输入框里填写2003或者2002都能连接成功并且能回写发送消息
代理服务器(2002)页面监听地址框里填写2002和2003都连接不上
控制台打印错误提示如下图
感觉是代理创建负载均衡代理器那里出了问题
更改之后
我把里面的CheckOrigin手动设置成true之后能用了。
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
} // use default options
是反向代理里面需要对socket有什么额外处理吗?这里是不是牵涉到跨域的问题,为什么老师演示的时候能用?和老师演示的有出入,希望老师能够解答一下。
为什么默认方法func checkSameOrigin(r *http.Request) bool
不返回true呢
// checkSameOrigin returns true if the origin is not set or is equal to the request host.
func checkSameOrigin(r *http.Request) bool {
origin := r.Header["Origin"]
if len(origin) == 0 {
return true
}
u, err := url.Parse(origin[0])
if err != nil {
return false
}
return equalASCIIFold(u.Host, r.Host)
}
写回答
1回答
-
牛儿吃草
2020-11-08
跨域问题,当前请求浏览器地址应该和接口地址不是一个域名。
比如一个localhost、一个127.0.0.1012020-11-08
相似问题