【问题标题】:How get notifications from stack overflow for new questions?如何从堆栈溢出中获取新问题的通知?
【发布时间】:2020-03-24 15:32:28
【问题描述】:

我想回答新的 javascript、react、react-native 和 node 问题。那么,我如何知道用户在这些领域提出的新问题?

【问题讨论】:

  • 您的意思是,直接在网站上或通过您正在开发的使用 Stack Exchange API 的应用程序?

标签: javascript node.js reactjs react-native stackexchange-api


【解决方案1】:

打开到wss://qa.sockets.stackexchange.com/ 的Websocket 连接,然后发送消息1-questions-newest-tag-TAG,其中TAG 是您要监视的标签。这是现场直播:

const socket = new WebSocket('wss://qa.sockets.stackexchange.com/');
socket.onopen = () => {
  socket.send('1-questions-newest-tag-javascript');
  socket.send('1-questions-newest-tag-java');
  socket.send('1-questions-newest-tag-python');
  socket.send('1-questions-newest-tag-php');
  console.log('Listening...');
};
const seenQuestions = new Set();
socket.onmessage = ({ data }) => {
  const obj = JSON.parse(data);
  if (obj.action === 'hb') {
    socket.send('pong');
    return;
  }
  const { id, body } = JSON.parse(obj.data);
  if (seenQuestions.has(id)) {
    // Duplicate question, a message for it has already been handled:
    return;
  }
  seenQuestions.add(id);
  console.log('New question:', id);
  document.body.insertAdjacentHTML('beforeend', body);
};
socket.onerror = console.error; // just in case
<!-- Makes the inserted questions look a bit prettier: -->
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/stackoverflow/primary.css?v=d385c34dc2d7">

确实需要收听hb 消息并回复它,以便 StackExchange 知道保持连接处于活动状态。

请注意,套接字将为正在侦听的 每个 标记发送给定问题的数据。例如,如果某事物同时使用 Javascript 和 React 进行了标记,并且您已经发送了侦听这两个标记的请求,您将收到该 两次 的消息,因此需要使用 Set 来避免列出重复。

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2014-03-16
    • 2019-05-18
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多