2015-10-20 12 views
-3

如何为node.js中的所有客户端会话使用一个整型变量并在客户端html中访问它们? (也就是说,我需要一个整数变量,它可以显示在html页面中,并可以在html页面中更新。应该为其他客户端显示新的更新值。)我知道这是一个愚蠢的问题。但是我很抱歉。我对node.js完全陌生,而且没有太多时间。我最早需要一个解决方案。谢谢。对于node.js中所有会话通用的整型变量

+0

这样做的一种方法是使用[服务器发送的事件](https://html.spec.whatwg.org/multipage/comms.html#server-sent-events),它们很容易设置在Node.js中,在客户端非常容易。尝试一下。 – Touffy

+0

node.js是一个非常模糊的标签。你在用什么? expressjs或socketio? – taesu

回答

1

有用于获取公共变量到网页多个选项:

  1. 您可以嵌入一个实际<script>标签用在每一个从服务器提供的页面的变量。如果使用模板引擎,这种技术将是最简单的,以便每个页面都可以包含一个公共的子模板。

  2. 您可以让每个页面在第一次加载以获取变量值时向服务器发送ajax调用。

  3. 您可以让每个页面在第一次加载时创建与服务器的webSocket连接,然后当服务器接收到连接时,它可以发回变量的值。

当客户想要更新变量,它有通知服务器几个选项:

  1. 如果使用上面的WebSocket连接,就可以直接发送邮件到服务器该变量已被uddated并发送新的值。然后服务器可以向其他webSocket连接的客户端广播新的价值。

  2. 如果使用上述其他两个选项中的任何一个,那么无论客户端何时需要更改该值,都可以向服务器发出ajax调用以更新该值。除了上面的webSocket选项之外,其他客户端知道变量值何时更改的唯一方法是每个客户端定期轮询服务器以获取变量的当前值(例如每隔30秒左右)。这不是特别有效。

因为你的问题的一部分是对所有连接的客户端知道什么时候该变量有变化,你需要为服务器“推”的更新值到所有客户端的能力。这是webSockets的发明,可能是推荐的选择。