前端监听器监听后端监听器

2024-04-05

我一直在寻找有关此问题的答案,但找不到任何好的答案。我在 cloudant 上有一个用 NodeJS 构建的监听器。因此,当 cloudant 更新时,我的代码中的一个函数就会被调用。我的问题是这些数据应该在前端应用程序中作为实时数据提供。如果我将侦听器放在 API 端点/中间件中,除非它收到来自前端的请求,否则它不会被调用,我猜?

所以我的问题是:如何在后端创建一个侦听器,以便在 cloudant 出现更改时将数据发送到前端?基本上我希望前端的侦听器能够侦听后端的侦听器。


因此,您需要的是能够将数据从服务器发送或“推送”到客户端。执行此操作的典型方法是使用 webSocket 或 socket.io 连接。客户端连接到服务器并创建到服务器的持久连接。从那时起,服务器可以随时通过该连接向客户端发送数据。然后,客户端在该连接上创建一个侦听器,以便它知道何时有传入数据,然后可以根据数据采取相应的操作。

webSocket 是支持此类功能的内置浏览器标准。 socket.io 是建立在 webSocket 连接之上的附加客户端和服务器层,它添加了许多有用的功能,例如连接断开时自动重新连接、JSON 消息定义层,因此您不必定义自己的数据格式等...

这通常是这样工作的:

  1. 当服务器初始化时,它会为传入的 socket.io 连接创建一个 socket.io 侦听器。 webSocket/socket.io 旨在“共享”您用于加载网页的同一 Web 服务器,因此您不需要额外的服务器或端口。
  2. 当浏览器加载页面时,该页面中的某些 Javascript 会创建与服务器的 socket.io 连接。
  3. 然后,客户端为其希望能够执行操作的任何消息设置侦听器。
  4. 同时,当服务器收到想要发送给客户端的数据时,它可以将该数据发送给所有当前连接的客户端,也可以仅将其发送给一个特定的客户端。
  5. 然后,客户端的事件监听器将触发并接收数据。
  6. 然后,客户端可以决定要对数据执行什么操作,通常是在当前显示的页面中插入一些内容。
  7. 当浏览器切换到另一个网页时,socket.io 连接会自动断开。

The socket.io 文档 https://github.com/socketio/socket.io/tree/master/docs有几段适用于客户端和服务器的示例代码,向您展示它是如何编程的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端监听器监听后端监听器 的相关文章

随机推荐