gpt4 book ai didi

javascript - 戈朗 : dealing with binary data

转载 作者:IT王子 更新时间:2023-10-29 02:22:33 24 4
gpt4 key购买 nike

我有应用程序客户端(javascript)-服务器(golang),它们之间的连接都是通过 websocket 实现的。我正在计划使用二进制消息,我想创建自己的消息传递协议(protocol),如本页 protocol .

我已经通过使用 DataView 在 javascript 中弄清楚了,但不是在 golang 中。事件原始数据类型很相似,比如它们有 int8、uint8、int16、uint16 等,我想不通。

这是消息框架:

1      Uint8      opcode
2 Uint16 msg

这是使用上面的消息框架处理来自 websocket 的传入消息的 javascript 代码示例:

websocket.onmessage = function(evt) {
var data = new DataView(evt.data);
var opcode = data.getUint8(0);
var msg = data.getUint16(1);
}

你能告诉我如何用 golang 做吗?我正在使用 gorilla websocket .我知道读取的消息在 []byte 中,但我不知道如何像 javascript 对 DataView 那样对其进行 slice 。

谢谢

最佳答案

对于 uint16,您需要二进制包。仔细检查 LittleEndian 是否是您想要的。

package main

import (
"encoding/binary"
)

func main() {
a := []byte("yak")

/* opcode */ _ = uint8(a[0])
/* message */ _ = binary.LittleEndian.Uint16(a[1:3])
}

https://play.golang.org/p/HRu7C5h2a5

关于javascript - 戈朗 : dealing with binary data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318358/

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