如何使用 Server-Sent Events 和 JavaScript 构建实时图形

阅读时长 4 分钟读完

本文介绍如何利用 Server-Sent Events (SSE) 和 JavaScript 构建实时图形。你将学习到如何设置 SSE 服务器、如何在前端页面中使用 SSE 并把相关数据渲染成动态的实时图形。我们将会使用 HTML、CSS 和 JavaScript 完成这一过程。

什么是 Server-Sent Events?

Server-Sent Events 是一种轻量级的协议,它允许浏览器自动从服务器上获取推送(pushed)数据。该协议支持服务器消息单向发送到客户端,也就是说,服务器可以在任意时间内发送数据给客户端,而客户端会实时接收这些数据。SSE 可以被用于构建实时数据可视化和更新内容等类似场景。

构建 SSE 服务器

首先,我们需要一个 SSE 服务器,它需要能够发送数据到客户端,通常情况下,我们可以使用 Node.js 来搭建 SSE 服务器。以下是一个简单的 SSE 服务器示例代码:

-- -------------------- ---- -------
----- ---- - ----------------

----------------------- ---- -- -
  -- ------ --- --
  ------------------ -
    --------------- --------------------
    ---------------- -----------
    ------------- ------------
  ---

  -- --------
  -------------- -- -
    ----- --- - --- ----------------------------
    ---------------- --- ---- -- -------------
  -- ------
--------------- -------------

------------------- ------- -- -------------------------

在这个示例中,我们创建了一个 HTTP 服务器并监听了本地 3000 端口。服务器会每秒钟向客户端发送一条数据,该数据包含当前的时间。

前端页面使用 SSE

现在我们已经有了一个 SSE 服务器,接下来我们需要在前端页面中使用 SSE 来获取推送数据,并把它渲染成实时图形。以下是前端页面示例代码:

-- -------------------- ---- -------
--------- -----
------
------
  ----- ----------------
  ---------------- ----- ---- --- --- ------------------
  -------
    ------ -
      ------ ------
      ------- ------
      ------- --- ----- ------
    -
  --------
-------
------
  ------------- ----- ---- --- --- ---------------
  ---- ----------- ---
  -- ---------------

  --------
    ----- ----- - ---------------------------------

    -- ------ --- --
    ----- --------- - --- --------------------------------------

    -- - --- -----------
    ------------------- - --------------- -
      -- ----------
      ----- ----- - --------------------------------------- -----

      -- ------ --- ---------
      ----- --- - ------------------------------
      --------------- - -------
      ---------------- - ------ - --- - -----
      ------------------------- - -------

      -- ----------
      ----------------------- ------------------
    --
  ---------
-------
-------

在这个示例中,我们创建了一个 div 元素作为实时图形容器,并创建了一个新的 SSE 对象从服务器端获取数据。当 SSE 在接收到消息后,我们将数据转化为数字,并将其渲染成一个新的 div 元素添加到图形内部。用户可以看到图形被实时地更新。

总结

本文介绍了如何使用 Server-Sent Events 和 JavaScript 构建实时图形。你可以通过 SSE 服务器在任意时间向客户端发送推送数据,然后通过前端页面把数据渲染成实时

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651bb26f95b1f8cacd3539ea

纠错
反馈