gpt4 book ai didi

go - 通过 go-socked.io 接收字节数组时出错

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:08 24 4
gpt4 key购买 nike

我正在尝试从浏览器发送一个 Int8Array 到 go-socked.io,这是我客户的代码:

function init(){
conn = io('http://localhost:8080/');
var c = new Int8Array([127]);
conn.emit('m',c)
}

这是我的服务器代码

func main() {
server, err := socketio.NewServer(nil)
if err!= nil{
log.Fatal(err)
}
server.On("connection",on_connection)
http.Handle("/socket.io/", server)
http.Handle("/src/", maxAgeHandler(0,http.FileServer(http.Dir("./"))))
http.Handle("/app/", maxAgeHandler(0,http.FileServer(http.Dir("./"))))
http.ListenAndServe(":8080",nil)
}

func on_connection(so socketio.Socket){
log.Println("On connection")
so.Join("Room")
so.On("m",func(msg *socketio.Attachment){
b, _ := ioutil.ReadAll(msg.Data) <---- I got error in this line
fmt.Println(b)
})

}

我说的错误:

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference

我想知道如何读取消息中的字节数据。

最佳答案

您发送的不是附件,只是数据。此数据可以与 map[string]int8 映射使用,因为您要发送一个 int8 数组,并且它在 socketio 中被转换为映射。

func on_connection(so socketio.Socket) {
log.Println("On connection")
so.Join("Room")
so.On("m", func(data map[string]int8) {
array := make([]int8, len(data))
for k, v := range data {
pos, _ := strconv.Atoi(k)
array[pos] = v
}
fmt.Println(array)
})
}

关于go - 通过 go-socked.io 接收字节数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41319992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com