【问题标题】:How to get Pubnub JS history messages如何获取 Pubnub JS 历史消息
【发布时间】:2022-10-25 16:14:40
【问题描述】:

我目前正在尝试在 js 中获取频道的历史记录,这是我当前的代码:

发信息

function sendMessage(text){
    box=$('box')
    box.innerHTML = ('' + text).replace(/[<>]/g, '') + '<br>' + box.innerHTML
}

这是我当前获取历史记录的代码

pubnub.fetchMessages(
    {
      channels: ['ch-1'],
      end: '15343325004275466',
      count: 20
    },
    (status, response) => {
      sendMessage(response.messages[0])
    }
);

但它不起作用。有人可以帮忙吗

【问题讨论】:

  • 如果您在下面尝试了 Darryn 的解决方案但仍然无法正常工作,则可能是竞争条件。您是否发布消息并立即尝试获取消息?因为操作是异步的,并且消息必须跨网络中的许多节点(全局)持久化,所以它可能没有在您获取的时间内持久化。无论如何,没有任何实际的发布/获取用例,所以我认为这只是测试 PN 消息的持久性。让我知道。

标签: javascript pubnub


【解决方案1】:

请尝试以下语法:

pubnub.fetchMessages( // Get the last 10 messages sent in the chat.
{
   channels: ['ch-1'],
   count: 10,
},
function (status, response) {
   if (response.channels[channel] && channel in response.channels) {
      response.channels[channel].forEach((message) => {
         console.log(message);
      });
   }
});

另一种可能性是您在管理仪表板中禁用了持久性(或者保留期设置得太短,因此您没有存储的消息要检索)

【讨论】:

  • 我尝试了你的答案,但它没有用,当我尝试提醒时(我没有使用 ide,所以我没有'console.log')它没有提醒任何东西,我打开了持久性,所以我认为那里是代码错误
  • 你是如何发布消息的?您的 sendMessage 函数不会向 PubNub 发布任何消息
  • 是的,这就是我在前端使用的,因为那是我在 PubNub 发布功能中使用的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
相关资源
最近更新 更多