云起工作室 15711107967
websocket
2025-02-24 14:26:12

import "github.com/gorilla/websocket"


var upgrader = websocket.Upgrader{

ReadBufferSize: 1024,

WriteBufferSize: 1024,

CheckOrigin: func(r *http.Request) bool {

return true

},

}


func handler(w http.ResponseWriter, r *http.Request) {


conn, err := upgrader.Upgrade(w, r, nil)

if err != nil {

log.Println(err)

}

defer conn.Close()


for {

messageType, message, err := conn.ReadMessage()

if err != nil {

break

}


err = conn.WriteMessage(messageType, string(message)) //string(message) 是客户端发来的信息

if err != nil {

break

}

}

}

func main() {

http.HandleFunc("/ws", handler)

http.ListenAndServe("localhost:8080", nil)

}





js端

var socket = new WebSocket('ws://localhost:8080/ws')

socket.addEventListener("open",(event)=>{

console.log("==建立联系",event)

socket.send("hello")

})

socket.addEventListener("message",(envent)=>{

console.log("==收到消息",event)

})

socket.addEventListener("close",(event)=>{

console.log("==关闭链接",event)

})

socket.addEventListener("error",(err)=>{

console.log("===err:",err)

})


function send() {

var message = "dd你好"

socket.send(message)

}


function keepAlive(){

if(socket.readyState===WebSocket.OPEN){

socket.send("ping")

}else{

console.log("socket is not open")

}

}


setInterval(keepAlive,3000)