如何通过 websockets 发送结构

Posted

技术标签:

【中文标题】如何通过 websockets 发送结构【英文标题】:how to send a structure over websockets 【发布时间】:2012-09-26 10:37:29 【问题描述】:

我想发送一个结构

struct s 
    unsigned int a;
    unsigned short b;
    unsigned char str[16];

 

如何使用 javascript 发送上述结构?而且我不能使用json。

【问题讨论】:

你不能使用JSON?为什么不?你不能把它全部打包成一个字符串吗?此外,更具体地说明您要完成的工作以及为什么需要传递 C 结构声明。 我的服务器是用 C++ 编写的。它不支持 json。 有 C++ 的 JSON 实现。无论如何,您只需要以 some 方式序列化您的数据。 JSON 是一种方法,但还有很多其他选择。您只需要将数据转换为字符串或字节序列 【参考方案1】:

没有办法以无需在服务器中进行任何解包的方式“发送结构”。 struct 定义只对 C++ 服务器有意义,即使在那里也不能保证它映射到内存的方式。您将需要某种序列化(将程序数据转换为可解析的数据流以进行存储或传输),而 XML 和 JSON 等文本格式是一种简单而可靠的方法。我会选择 JSON,因为 Javascript 本身就支持它;你所要做的就是给一个对象添加属性,然后JSON.stringify它。真正的工作是在服务器端。在那里,您需要使用诸如 JsonCpp 或 nosjob 之类的库来读取 JSON 数据。然后您可以手动将每个值存储在您的结构中。

【讨论】:

以上是关于如何通过 websockets 发送结构的主要内容,如果未能解决你的问题,请参考以下文章

nodejs-websocket介绍

WebSocket 实战

Webflux,使用Websocket如何防止订阅两次反应式redis消息操作

WebSockets + PHP(棘轮)登录系统

websocket._exceptions.WebSocketProxyException:通过代理连接失败状态:503

WebSocket服务端和客户端代码示例