Javascript 订阅redis发布/订阅消息上的套接字最佳设计
我在NodeJS中有一个redis pub sub消息系统,在该系统中,我通过发送如下数据订阅第三方socket apiJavascript 订阅redis发布/订阅消息上的套接字最佳设计,javascript,node.js,websocket,redis,Javascript,Node.js,Websocket,Redis,我在NodeJS中有一个redis pub sub消息系统,在该系统中,我通过发送如下数据订阅第三方socket api var SingletonSocket = (function () { var instance; function createInstance() { var object = new WebSocket('external subscription api'); return object; } ret
var SingletonSocket = (function () {
var instance;
function createInstance() {
var object = new WebSocket('external subscription api');
return object;
}
return {
getInstance: function () {
if (! instance) {
instance = createInstance();
}
return instance;
}
};
})();
redis.on('message', async (channel, message) => {
const key = 'centralidslist';
try {
const allcentralids = await data.lrange(key, 0, -1); // wesb
const markets = [...new Set(allcentralids)];
console.log(markets, "Socket Subscribed Data Started");
const ws = SingletonSocket.getInstance();
ws.on('open', function open() {
ws.send(`{"action":"set","markets":"${
markets.join(",")
}"}`);
});
ws.on('message', function open() {
// pushing the data to another redis channel here
});
} catch (error) {
console.error(error);
}
});
上面的系统工作正常,但有时会出现故障,我必须重新启动服务器,有人能建议一种更好的方法来执行此操作,这样可以处理连续的数据流而不会中断,而且当套接字停止发布时,我不会收到任何错误。欢迎提出任何建议,这是否完全是redis的问题