0
点赞
收藏
分享

微信扫一扫

websocket服务端与客户端

websocket服务端

package main

import (
"golang.org/x/net/websocket"
"fmt"
"log"
"net/http"
)

func echoHandler(ws *websocket.Conn) {
msg := make([]byte, 512)
n, err := ws.Read(msg)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Receive: %s\n", msg[:n])

send_msg := "[" + string(msg[:n]) + "]"
m, err := ws.Write([]byte(send_msg))
if err != nil {
log.Fatal(err)
}
fmt.Printf("Send: %s\n", msg[:m])
}

func main() {
http.Handle("/echo", websocket.Handler(echoHandler))
http.Handle("/", http.FileServer(http.Dir(".")))

err := http.ListenAndServe(":8080", nil)

if err != nil {
panic("ListenAndServe: " + err.Error())
}
}

websocket客户端

package main

import (
"fmt"
"golang.org/x/net/websocket"
"log"
)

var origin = "http://127.0.0.1:8080/"
var url = "ws://127.0.0.1:8080/echo"

func main() {
ws, err := websocket.Dial(url, "", origin)
if err != nil {
log.Fatal(err)
}
message := []byte("hello, world!你好")
_, err = ws.Write(message)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Send: %s\n", message)

var msg = make([]byte, 512)
m, err := ws.Read(msg)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Receive: %s\n", msg[:m])

ws.Close() //关闭连接
}


举报

相关推荐

0 条评论