[英]Javascript - byte array to long?
我有一个从Java构造的byteArray
,其中包含longs
。 我需要能够使用Javascript阅读这些内容。 我了解Javascript默认不支持longs
。 有没有办法解决? 我可以改为将其读取为String
吗?
谢谢
下面的DataView.getInt64()
实现将使您以足够的精度进行操作:
我想分享一些对某人有用的技巧。
我的Java服务器通过二进制websocket消息从System.currentTimeMillis()
向所有客户端发送具有较长时间戳的玩家位置。 在客户端解析此消息时,我正在使用DataView
。
但是DataView 没有方法getInt64()
。 我的解决方案是分两次发送长消息。
在服务器端:
long time = System.currentTimeMillis();
int firstPiece = (int)(time / 1000);
short secondPiece = (short)(time % 1000);
在客户端:
let data = {};
let view = new DataView(binary);
data.t = view.getInt32(offset) * 1000 + view.getInt16(offset + 4);
而且这还节省了2个字节(长8个字节>整数4个字节+短2个字节),但是它将一直工作到2038年https://en.wikipedia.org/wiki/Year_2038_problem 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.