使用 Pubnub 的流控制器和 CSS3 动画可视化推文

发布日期:2026-07-12 04:11:03   来源 : 杭州电子商务研究院    浏览量 :2
杭州电子商务研究院 发布日期:2026-07-12 04:11:03  
2

概括

本教程将向您展示如何通过构建 Web 应用程序来实时可视化带有特定主题标签的推文,从而将频道组与 PubNub 的 Stream Controller API 结合使用。

这是我们将要使用的堆栈:

该应用程序将跟踪带有以下主题标签的推文(这些是可配置的):

  • #消息
  • #家庭
  • #引用
  • #爱
  • #今天
  • #编程

每个主题标签都有自己的 PubNub 频道(推文将在此发布)。所有频道都属于一个频道组。

客户端将监听此频道组上的消息,以将推文呈现为不同颜色的脉动圆圈(每个主题标签都有自己的颜色):

还有一个管理页面,可以通过向 PubNub 频道组添加或删除频道来打开/关闭每个主题标签:

管理页面上所做的更改会实时反映在客户端上:

为了简单起见,管理页面(及其服务器端路由)将不实现身份验证。

整个源代码可以在 Github 上找到

要求

叽叽喳喳

登录你的 Twitter 账号,前往 https://dev.twitter.com/apps/new 创建一个新应用程序。

在创建申请之前,您必须将您的手机号码添加到 Twitter 个人资料中。请阅读 https://support.twitter.com/articles/110250-adding-your-mobile-number-to-your-account-via-web 了解更多信息。

您必须输入以下内容:

  • 名称(您的应用程序名称,例如sample_eh3rrera
  • 描述(您的应用程序描述)
  • 网站(您的应用程序的公开可访问主页。我们不会使用它,因此您只需输入https://127.0.0.1)。

在您同意Twitter的开发者协议后,您的应用程序将被创建:

现在转到密钥和访问令牌部分,然后单击创建我的访问令牌来创建访问令牌

保存您的消费者密钥、消费者机密、访问令牌和访问令牌机密,因为我们稍后会需要它。

PubNub

前往 https://admin.pubnub.com/#/register 并注册一个新帐户。登录后,您将看到以下屏幕:

您可以创建新应用,也可以使用已创建的演示应用。单击此应用时,您将看到以下内容:

保存您的发布和订阅密钥,因为我们稍后会需要它。现在单击密钥集面板并转到应用程序附加组件部分以启用Stream Controller附加组件并保存更改:

Node.js

我们需要安装最新版本的Node.js。

现在让我们开始吧。

创建应用程序结构

创建一个新目录并进入该目录:

      mkdir visual-tweets && cd visual-tweets
    

现在创建一个package.json文件,可以使用以下方式:

      npm init
    

或者接受默认值:

      npm init -y
    

我们将使用下一个依赖项(及其撰写本文时的最新版本):

  • twit,版本 2.2.4(使用 Twitter Stream API)
  • pubnub,版本 4.0.6(使用 PubNub API)
  • express,版本 4.14.0(作为 Web 框架)
  • express-handlebars,版本 3.0.0(作为模板库)

使用以下命令添加它们:

      npm install --save twit pubnub express express-handlebars
    

该项目将具有以下目录结构:

      |— public
| |— css
| | |— admin.css
| | |— hashtags.css
| | |— style.css
| | |— switch.css
| |— js
| | |— admin.js
| | |— index.js
|— routes
| | |— admin.js
| | |— index.js
|— views
| | |— admin.hbs
| | |— index.hbs
| |— app.js
| |— config.js
| |— package.json
    

config.js文件以这种方式存储所有重要的配置(不要忘记使用自己的密钥):

      module.exports = {
  twitter: {
    consumer_key: "GOVEyk6pApI3G8nhgJ9hoiOqS",
    consumer_secret: "PYk0IldOYtYvVYFZaijFcalAze2v7lcne1AaJkkfL8gNfwaGYk",
    access_token: "3102431840-onTYIYLayKQ7WmO6RGNAXMEKUkf69S6j7j29oyP",
    access_token_secret: "G4GxB0ZcQKifCyiMlLzHH67rEpvQCJqgMx5SQWolhUb3p"
  },
  pubnub: {
    ssl: false,
    publish_key: "pub-c-05e810c1-4a07-432c-8183-dcbe803a6036",
    subscribe_key: "sub-c-5f244ce2-426e-11e6-9c7c-0619f8945a4f"
  },
  hashtagsToTrack: [
    "#news",
    "#family",
    "#quote",
    "#love",
    "#today",
    "#programming"
  ],
  channelGroup: "hashtags",
  channelUpdates: "hashtag_updates",
  port: process.env.APP_PORT || 3000
};
    

考虑到这一点,让我们回顾一下服务器端代码。

创建服务器

app.js文件将包含服务器的代码。首先导入依赖项:

      var express = require("express");
var app = express();
var exphbs = require("express-handlebars");
var config = require("./config");
var Handlebars = require("handlebars");
var Twit = require("twit");
var PubNub = require("pubnub");
    

然后,创建与 Twitter 和 PubNub API 一起使用的对象:

      var T = new Twit({
  consumer_key: config.twitter.consumer_key,
  consumer_secret: config.twitter.consumer_secret,
  access_token: config.twitter.access_token,
  access_token_secret: config.twitter.access_token_secret
});

var pubnub = new PubNub({
  ssl: config.pubnub.ssl,
  publishKey: config.pubnub.publish_key,
  subscribeKey: config.pubnub.subscribe_key
});
    

config.js文件中,我们用#字符定义要跟踪的主题标签<font style="vertical-align: inher

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据