【发布时间】:2018-04-07 05:11:23
【问题描述】:
当客户端重新加载页面时,服务器发出错误- websocket:关闭1001(离开)。 当客户端重新加载页面时,websocket连接不会重新连接吗? 我最近开始学习编程,所以如果问题很愚蠢,请原谅。 客户端代码
var socket = new WebSocket("ws://localhost:8080/ws" );
socket.onmessage = function (event) {
DownloadScene(event)
}
function DownloadScene(event) {
var data = JSON.parse(event.data)
document.getElementById(data.id).innerHTML = data.body;
}
function loadScene(scene) {
var page = {
query_type:"loadScene",
data : {temp:scene}
}
var event = JSON.stringify(page);
socket.send(event);
}
我正在使用 gorilla websocket 库来建立连接。
服务器代码
func WebSocketHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upGrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return
}
for { webSocketHandler(conn)}
defer conn.Close()
}
func webSocketHandler(conn *websocket.Conn) {
println("new connect")
err := conn.ReadJSON(&query)
if err != nil {
log.Fatal(err)
return
}
switch query.QueryType {
case "loadScene" :
err := json.Unmarshal(query.Data,&frames)
if err!= nil{
log.Fatal(err)
}
var buf bytes.Buffer
data := frame.ExecuteTemplate(&buf,"frame",nil)
if data!=nil{
log.Fatal(data)
}
res,e := json.Marshal(&Frame{"scene",buf.String()})
if e !=nil{
log.Println(e)
}
errs := conn.WriteMessage(1,res)
if err!=nil{
log.Fatal(errs)
}
}
}
【问题讨论】:
标签: javascript go websocket