【发布时间】:2014-09-12 10:30:24
【问题描述】:
我在 node.js 项目中使用 pubnub。我可以初始化 pubnub 并发布如下消息:
Node.js
var PUBNUB = require('pubnub');
var pubnub = PUBNUB.init({
publish_key : 'demo',
subscribe_key : 'demo'
});
var CHANNEL = 'test1234';
pubnub.subscribe({
channel: CHANNEL,
message: function (message) {
console.log('Received message:', message);
// unsubscribe again
pubnub.unsubscribe({channel: CHANNEL});
// PROBLEM: The node.js process does not exit because pubnub is still
// active. How to close the pubnub connection so it's completely
// gone from memory?
},
connect: function () {
// send a test message
pubnub.publish({channel: CHANNEL, message: 'hello world!'});
}
});
但是我怎样才能关闭这个 pubnub 实例呢?这样它就从内存和事件循环中消失了,并且不会让 node.js 进程继续运行。
我在 API 文档中找不到任何内容,并尝试了 pubnub.close()、pubnub.destroy() 和 pubnub.disconnect(),但均未成功。
【问题讨论】:
-
Afaik 你的 sn-p 还没有建立连接,通常你会通过订阅一个频道来建立一个连接,然后通过再次取消订阅来关闭它。查看示例:github.com/pubnub/javascript/blob/master/examples/dev-console/…
-
谢谢。我已经发布了一个完整的代码示例,可以更好地解释这个问题。关键是在 node.js 中,这个过程永远不会结束,因为 pubnub 在内存中仍然是活动的。
-
pubnub.unsubscribe() 应该删除订阅过程。您能否通过 support@pubnub.com 与我们联系,以便我们与您更紧密地合作解决方案(我们将在此处报告我们的发现。)
-
@Geremy 感谢您的回复。很高兴知道从所有频道退订时该过程应自动关闭。我已向 support@pubnub.com 发送有关此问题的消息
-
@JosdeJong 我遇到了同样的问题。您是否能够在 pubnub 支持的帮助下解决它?如果是这样,你做了什么?
标签: javascript node.js pubnub