upgrade:websocket: request origin not allowed by Upgrader.CheckOrigin が出てきた時の対応方法

1つのJavaScriptに2つのWebSocket繋げようとしたのですが、upgrade:websocket: request origin not allowed by Upgrader.CheckOrigin というエラーメッセージがでてきて、コネクションに失敗します。

で、よく分からんのですが、1行追加したら、直りました。

upgrader.Upgrade(w, r, nil)

の前に、

upgrader.CheckOrigin = func(r *http.Request) bool { return true }
を1行追加。
以下がサンプルコードです。
func echo2(w http.ResponseWriter, r *http.Request) {

	upgrader.CheckOrigin = func(r *http.Request) bool { return true }

	c, err := upgrader.Upgrade(w, r, nil) // cはサーバのコネクション
	if err != nil {
		log.Print("upgrade:", err)
		return
	}
	defer c.Close()

まあ、相変わらず、理由は分からんのですが、結果オーライです。

2022/04,江端さんの技術メモ

Posted by ebata