MsgPack可以在C++下序列化类,Protobuf只能在C#下序列化类
C++只要#include <msgpack.hpp>就能直接用,不用链接库,也不用包含CPP文件。
Cocos Creator安装msgpack-lite
项目文件夹执行
npm install msgpack-lite
npm i --save-dev @types/msgpack-lite
Cannot read property 'Buffer' of undefined
看这个:
Creator 3.x npm包 一些坑的解决方法(新手向) - Creator 3.x - Cocos中文社区文章来源:https://www.toymoban.com/news/detail-744208.html
在这个路径下建一个同名的声明文件 msgpack.min.d.ts
里面写上文章来源地址https://www.toymoban.com/news/detail-744208.html
declare module "msgpack-lite/dist/msgpack.min.js" {
export * from "msgpack-lite";
}
import msgpack from "msgpack-lite/dist/msgpack.min.js";
//C++结构对应TypeScript里的数组
const object = [
editBox.string,
'Hello, world!pwd',
];
const encoded: Uint8Array = msgpack.encode(object);
websocket.send(encoded);
//C++结构对应TypeScript里的数组
struct MsgLogin {
std::string name;
std::string pwd;
MSGPACK_DEFINE(name, pwd);
};
msgpack::object_handle oh = msgpack::unpack(frame_payload.bytes(), frame_payload.length());
msgpack::object obj = oh.get();
std::cout << obj << std::endl;
const auto msgLogin = obj.as<MsgLogin>();
到了这里,关于MsgPack和Protobuf的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!