在gin框架下使用websocket , 如果是跨域请求的时候会报这个错误
request origin not allowed by Upgrader.CheckOrigin
使用的websocket库是 "github.com/gorilla/websocket"
需要增加以下代码:
upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
// 解决跨域问题
CheckOrigin: func(r *http.Request) bool {
return true
},
}
或者添加指定的网站
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
// 检查请求的Origin头部,只允许特定的源
origin := r.Header.Get("Origin")
allowedOrigins := []string{
"http://example.com",
"https://example.com",
"http://subdomain.example.com",
"https://subdomain.example.com",
}
for _, allowedOrigin := range allowedOrigins {
if origin == allowedOrigin {
return true
}
}
// 如果Origin不在允许列表中,则拒绝连接
return false
},
}