Javascript - 字节数组要长吗?

时间:2014-03-14 09:06:00

标签: java javascript byte bytearray long-integer

我有一个由Java构建的byteArray,其中包含longs。我需要能够在Javascript中阅读这些长篇内容。我了解默认情况下Javascript不支持longs。有没有办法解决?我可以将其作为String来阅读吗?

由于

2 个答案:

答案 0 :(得分:1)

下面的DataView.getInt64()实现将使您以足够的精度做到这一点:

How to Read 64-bit Integer from an ArrayBuffer / DataView in JavaScript

答案 1 :(得分:0)

我想分享一些可能对某人有用的技巧。

我的java服务器通过二进制websocket消息从Microsoft.VisualBasic发送具有长时间戳的玩家的所有客户位置。在客户端解析此消息我使用/// <summary> /// Visual Basic like operator. Performs simple, case insensitive, string pattern matching. /// </summary> /// <param name="thisString"></param> /// <param name="pattern"> ? = Any single character. * = Zero or more characters. # = Any single digit (0–9)</param> /// <returns>true if the string matches the pattern</returns> public static bool Like(this string thisString, string pattern) => Microsoft.VisualBasic.CompilerServices.Operators .LikeString(thisString, pattern, Microsoft.VisualBasic.CompareMethod.Text);

但DataView 没有方法System.currentTimeMillis()。我的解决方案是分两部分发送。

在服务器端:

DataView

在客户端:

getInt64()

这也节省了2个字节(长8个字节&gt; int 4个字节+短2个字节),但它将一直工作到2038年https://en.wikipedia.org/wiki/Year_2038_problem