2017-02-03 25 views
1

Я пытаюсь создать веб-сайты с помощью golang с gorilla на aws (без докеров) с балансировщиком нагрузки, у меня есть сертификат, подключенный к балансировщику нагрузки.Создать websocket с помощью golang в aws

Мне удалось заставить код работать с http, но когда я пытаюсь использовать код через https, он не работает.

Что я делаю неправильно? При переходе с http на https я изменил клиентский запрос на wss вместо ws и добавил сертификат к балансировщику нагрузки. Вот мой код. Это мой main.go

http.HandleFunc("/wss", serveWs) 

fmt.Printf("Listening on port %s\n\n", port) 


if err := http.ListenAndServe(":"+port, nil); err != nil { 
    fmt.Printf(err.Error()) 
} 

Это является serveWs:

func serveWs(w http.ResponseWriter, r *http.Request) { 
upgrader.CheckOrigin = func(r *http.Request) bool { 
    // allow all connections by default 
    return true 
} 

ws, err := upgrader.Upgrade(w, r, nil) 
if err != nil { 
    fmt.Println(err) 
    if _, ok := err.(websocket.HandshakeError); !ok { 
     log.Println(err) 
    } 
    return 
} 

var lastMod time.Time 

if n, err := strconv.ParseInt(r.FormValue("lastMod"), 16, 64); err != nil { 
    lastMod = time.Unix(0, n) 
} 

go writer(ws, lastMod, w, r) 
reader(ws) 

}

Это запрос:

var conn = new WebSocket("wss://https://www.weldpad.com/wss?" 

Когда я посылаю запрос от клиент я получаю следующую ошибку:

не удалось: Ошибка во время установления связи с WebSocket: Неожиданный код ответа: 400

Посмотрите на журнал сервера, я вижу.

"не смог найти обновить заголовок с лексем«WebSocket"

Это моя конфигурация балансировки нагрузки:

Load Balancing Configuration

ответ

0

Я считаю, что это должно быть wss://www.weldpad.com/wss? не wss://https://www.weldpad.com/wss?

+0

Я также пробовал он и ответ были: wsconnect.html Соединение с WebSocket с «wss: //www.weldpad.com/wss» не выполнено: ошибка при рукопожатии WebSocket: неожиданный код ответа: 400 – WeldPad

+0

Ну, это намного лучше. или сообщение. Он получает ответ от сервера. Теперь вам нужно посмотреть на свой сервер, возможно, изучить журналы сервера и узнать, почему он возвращает код 400. –

+0

Глядя на журнал, я обнаружил, что «websocket: не удалось найти заголовок обновления с токеном« websocket », я изучаю его. – WeldPad