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