1
我有应用程序客户端(JavaScript) - 服务器(golang),它们之间的连接都遍布websocket。我计划使用二进制消息,我想创建自己的消息传递协议,如在此页protocol。Golang:处理二进制数据
我已经通过使用DataView而不是在golang中找到了javascript。事件的基本数据类型是相似的,如他们有int8,uint8,int16,uint16等,我无法弄清楚。
这是消息框:
1 Uint8 opcode
2 Uint16 msg
这是JavaScript代码处理与上述消息帧传入消息形式的WebSocket的例子:
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。
谢谢
我建议你使用[的Protobuf(https://developers.google.com/protocol-buffers/docs/gotutorial)或只是[JSON(HTTP:// WWW。 json.org/) –
感谢您的建议,我之前已经使用JSON来做到这一点,但现在是优化阶段,所以我需要切换到二进制数据。我想用JavaScript中的原始二进制数据解决方案,例如我的示例。 – billyzaelani
适合使用Flat Buffers https://google.github.io/flatbuffers/flatbuffers_guide_use_go.html –