我的程序:
package main
import (
"fmt"
"io"
"log"
"net"
"github.com/gobwas/ws"
)
func HandleConn(conn net.Conn) {
for {
header, err := ws.ReadHeader(conn)
if err != nil {
log.Fatal(err)
}
buf := make([]byte, header.Length)
_, err = io.ReadFull(conn, buf)
if err != nil {
log.Fatal(err)
}
fmt.Println(buf)
fmt.Println(string(buf))
}
}
func main() {
ln, err := net.Listen("tcp", "localhost:8080")
if err != nil {
log.Fatal(err)
}
for {
conn, err := ln.Accept()
if err != nil {
log.Fatal(err)
}
_, err = ws.Upgrade(conn)
if err != nil {
log.Fatal(err)
}
go HandleConn(conn)
}
}
我在浏览器控制台中做:
let socket = new WebSocket("ws://127.0.0.1:8080")
socket.send("Hello world")
我在终端中看到随机字节。每个调用返回不同的字节。但字节数组的长度始终等于字符串的长度。golang 从哪里获得这些随机字节?我该如何解决这个问题?我的程序是文档中的一个例子。socket.send("Hello world")
跃然一笑
相关分类