Zaczynam bawić się z sieciami internetowymi + idź i dobrze Myślę, że nie rozumiem czegoś zupełnie podstawowego z websockets w Go.Obsługa websocket w Go
Chciałbym po prostu słuchać połączenia internetowego i odpowiednio je przetwarzać. Jednak wszystkie przykłady, które widzę w Go za pomocą websocket, obsługują stronę internetową, która następnie łączy się z websem, czy jest to wymóg?
Poniżej znajduje się podstawowy serwer echo mam setup:
package main
import (
"fmt"
"code.google.com/p/go.net/websocket"
"net/http"
)
func webHandler(ws *websocket.Conn) {
var s string
fmt.Fscan(ws, &s)
fmt.Println("Received: ", s)
}
func main() {
fmt.Println("Starting websock server: ")
http.Handle("/echo", websocket.Handler(webHandler))
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic("ListenAndServe: " + err.Error())
}
}
To javascript służy do podłączenia:
ws = new WebSocket("ws://localhost:8080/echo");
ws.onmessage = function(e) {
console.log("websock: " + e.data);
};
Jednak to powoduje: websocket połączenia „WS:// localhost: 8080/echo "nie powiodło się: nieoczekiwany kod odpowiedzi: 403
Co oznacza przerwa w bloku? –
@ElgsQianChen Przerwa jest najprawdopodobniej pozostałością po tym, gdy po raz pierwszy ustawiam opcję Odbieranie i wysyłanie w pętli for, aby zapobiec jej rozłączeniu po pierwszej wiadomości. Zamiast tego zmieniłem go na 'return'. – ANisus
Ach, rozumiem. Dziękuję za wyjaśnienie. @isis. –