【发布时间】:2020-01-24 13:01:17
【问题描述】:
如何使用 pubnub 从客户端接收消息到服务器。
我可以订阅频道并在服务器端(node.js)收听吗?
以下场景需要使用pubnub:-
=> 很多用户,即存款人和取款人希望通过网络套接字将他们的详细信息发送到“P2P”微服务。
=> 存款人和取款人在客户端,P2P 微服务是服务器端(内置在 node.js 中)。
=> 现在,有了 pubnub,我可以得到这个功能,例如:- 服务器能够将消息发布到通道,并且浏览器中的客户端能够通过 websocket 监听这些消息。
=> 但我需要相反的功能,即客户端在订阅频道后将在频道中发布消息,并且服务器(Node.js)必须能够收听该消息。
Server.js
const publishConfig = {
channel: "pubnub_onboarding_channel",
message: { "sender": uuid, "content": "Hello From Node.js SDK" }
}
pubnub.addListener({
message: function (message) {
console.log(message);
},
presence: function (presenceEvent) {
console.log(presenceEvent);
}
}); // What is this listener? is it supposed to listen the messages from client? no messages are received here
pubnub.subscribe({
channel: "pubnub_onboarding_channel",
withPresence: true,
}); // This function is used for subscribing to channel
pubnub.publish(publishConfig, function (status, response) {
console.log(status, response);
}); // This is to again publish to client
【问题讨论】:
-
无论客户端“类型”如何,您都可以订阅频道:服务器、移动设备、浏览器、IoT 板等。但是如果您要部署多个服务器实例,从服务器端订阅确实会遇到挑战.您必须遵循一些最佳实践,我建议您联系PubNub Support(包括此 SO 链接,以便我们可以在此处发回详细信息)以获得有关这些最佳实践的更多指导。但如果它是单节点服务器,它与标准客户端设备没有什么不同。
标签: javascript node.js express websocket pubnub