我与node.js
和socket.io
建立了聊天。
当用户发送消息时,我将其直接插入DOM并将消息发送到服务器,因此可以将其发送给所有其他客户端。
问题是服务器上设置Date.now()
的时间戳似乎与客户端上设置的时间戳完全相同。
这使得界面有点奇怪,因为稍后发送的消息可以在先前发送的消息之前显示时间戳。
一种解决方案是计算用户加入聊天室时的时差,并在添加新消息时减去这种差异,但这是否真的有必要或者这是解决此问题的常用方法?这也可以成为应对时区等的解决方案吗?
答案 0 :(得分:0)
客户端和服务器之间可能存在不同的时区。它不适用于世界各地的多个用户。这个会有所帮助:
How to ignore user's time zone and force Date() use specific time zone
此外,如果您立即将时间戳附加到DOM,然后再次从服务器获取日期,则无论如何都会有所不同,因为您必须考虑请求到达服务器所需的时间。 / p>