Sto iniziando a giocare con le websockets + go e beh penso che sto fraintendendo qualcosa di abbastanza semplice con i websocket in Go.Servire una websocket in Go
Mi piacerebbe semplicemente ascoltare una connessione web-socket ed elaborare di conseguenza. Tuttavia, tutti gli esempi che vedo in Go using websocket servono la pagina web che si connette alla websocket, è un requisito?
Il seguente è un server eco base Ho installato:
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())
}
}
Questo è il javascript utilizzato per la connessione:
ws = new WebSocket("ws://localhost:8080/echo");
ws.onmessage = function(e) {
console.log("websock: " + e.data);
};
Tuttavia questo si traduce in: collegamento WebSocket a 'WS:// localhost: 8080/echo 'fallito: codice di risposta inatteso: 403
Cosa significa un'interruzione in un blocco if? –
@ElgsQianChen L'interruzione è molto probabilmente un residuo di me che prima mette la Ricezione e Invia in un ciclo for, per evitare che si disconnetta dopo il primo messaggio. L'ho cambiato in un 'return' invece. – ANisus
Ah, capisco. Grazie per la spiegazione @ANisus. –