- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在创建一个 8 位无符号 javascript 数组:
var myArray = Uint8Array(64);
在客户端和服务器上操作这个数组,然后通过 socket.io 连接发送它。我们正在编写一个游戏,因此通过网络发送的数据尽可能小。由于 socket.io 不支持发送二进制数据,是否值得使用 javascript 类型的数组,或者我们应该只使用普通的 javascript 数组?它们还会比原生 js 数组小吗?
最佳答案
注意:我假设您所说的客户端是指浏览器。否则,请提供更多详细信息。
Socket.io 不支持二进制数据,主要是因为它提供了不同的传输方式,其中很多都不支持。
但是,原生 websockets 确实支持 Blob 和 ArrayBuffers。
如果您真的想使用二进制数据来提高效率(我同意,这就是您的情况),我认为您应该考虑使用 websockets 而不是 socket.io。
缺点:
优点:
Web 套接字 API 非常简单。
内存效率会更高。通常,您的普通数组通过首先将它们制作成 JSON 字符串然后将它们发回来传输。这意味着您实际上是在发送数组的字符串表示形式!相反,您将在此处发送您期望的字节数(以更可预测的方式,在发送前不检查字符串长度,但如果需要,以更“协议(protocol)”的方式)。
如果您决定使用 WS,您可以查看:http://www.adobe.com/devnet/html5/articles/real-time-data-exchange-in-html5-with-websockets.html
否则你可以只使用 JSON。
说实话,如果您仍然使用 JSON 来支持 socket.io 和“通用”支持,那么也启用闪存传输,如果游戏需要低延迟,则禁用较慢的传输。
关于Javascript 类型数组 "over the wire",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12718970/
我正在研究 netwire 包,试图了解 FRP,我有一个简单的问题。 从以下简单的线路开始,我能够每 5 秒(大约)发出一个事件 myWire :: (Monad m, HasTime t s) =
我正在尝试“正确”地在 netwire 5 中实现一组动态电线。我已阅读wires of wires的答案问题,而且我不太喜欢示例中的代码如何依赖于转换为行为的 Event 在恰好一次执行上显示非空>
本文整理了Java中org.fabric3.spi.wire.Wire.getInvocationChains()方法的一些代码示例,展示了Wire.getInvocationChains()的具体用
本文整理了Java中org.apache.commons.httpclient.Wire.wire()方法的一些代码示例,展示了Wire.wire()的具体用法。这些代码示例主要来源于Github/S
我用 Google 搜索了很多次,看来我不是唯一一个在真正理解 Wire.write() 和 Wire.read() 方面遇到问题的人。作为新手,我几乎从不使用别人已经编写的库,我尝试为模块创建我的类
我正在尝试启动我的一个 bundle ,但一启动它,我就收到以下异常。我不确定是什么问题。 org.osgi.framework.BundleException: Unresolved constra
我一直在尝试关注“使用 OSGi 构建模块化云应用程序”。在“创建第一个 OSGi 应用程序”一书的第 3 章中,作者描述了如何使用 bndtools 在 eclipse 中创建一个带有服务的简单 O
我正在编译一个使用org.json的Java插件。在添加此插件之前,该插件已能够编译并正确运行。我在stackoverflow上看到了类似的问题,但是没有一个问题使用gradle解决。 在我的类顶部,
我是 Java/Karaf 4.0.9/Maven/Pom/Camel 的新手,我无法解决问题 pom.xml文件中的Json部分,这里我改了很多Json version , 但没有用。
我正在使用最新版本的 atlassian SDK 为 JIRA 开发插件。我已经编写了大部分代码,并向我的项目的 pom.xml 文件添加了一些我需要的依赖项(见下文)。 不幸的是,在运行 atlas
我下载了 Camel CXF 示例“camel-example-cxf-osgi ”,并且能够毫无问题地运行 mvn install 命令(根据 readme.md 文件),然后当我尝试安装时它在 F
我正在使用 maven-bundle-plugin 构建一个 war 文件作为一个包,我想在 Felix 中部署它。这是相同的 POM 文件。 4.0.0 net.java jvnet-p
Wired's移动 View (将您的用户代理设置为 iOS Safari 以在桌面上查看它)具有对标准带下划线超链接样式的优雅转折: 我认为这是完全通过 CSS 实现的,没有外部图形,但不是: ba
我最近注意到 Wired 杂志的链接有一条蓝色下划线,该下划线很粗,横跨文本下行部分,并且颜色与文本不同。这是一个 random page举个例子。 我不认为这是用 bottom-border 完成的
我正在创建一个 8 位无符号 javascript 数组: var myArray = Uint8Array(64); 在客户端和服务器上操作这个数组,然后通过 socket.io 连接发送它。我们
我想在 selenium-wire 中获取一个响应主体作为字符串,我最终会将其解析为 JSON。selenium-wire 中的 response.body 给出字节字符串。我尝试将其解码为 resp
我在Linux服务器上安装seleniumwire库时遇到问题,它向我发送密码时出现了错误,我已经尝试解决它,但是我没有能力,有什么想法吗? Caused by: process didn
我正在尝试(在本地)运行 AngularJS 中的第三个示例 http://angularjs.org/new称为“Wire up a Backend”,运气不好(在 Chrome 上)。 它提示:
我有几个不同的部署。Deployment A: export port 3333Deployment B: export port 4444我想使用单个服务(具有 LoadBalancer 类型)来导
我使用 eclipse 为 arduino 制作项目。我将“Wire.h”包含到一个新类中,并且在 arduinocore 库项目中,我在 Wire.h header 处收到错误。错误在于该行76 最
我是一名优秀的程序员,十分优秀!