【发布时间】:2017-04-14 17:43:20
【问题描述】:
嘿,哈瓦谷歌搜索并尝试了所有方法 - 但似乎没有任何效果,所以现在我要问你们:
如何制作我的 Node 应用程序。从停止退出 - 当我喜欢它继续运行并等待来自 Web Socket 连接的响应时? 如您所见,我在“PreventExit”功能中尝试了不同的东西。我只是想要这个应用程序。继续从 Web 套接字连接接收数据 - 无需关闭/退出。
var Gdax = require('gdax');
var WSemitter = require('../eventemitters/websocket-emitter');
module.exports = {
initws: function () {
var WebSocketEmit = new WSemitter();
test();
function test() {
try {
PreventExit();
var websocket = new Gdax.WebsocketClient();
websocket.on('message', function (data) {
console.log(data);
WebSocketEmit.fakeEvent();
});
}
catch (err) {
console.log(err);
}
}
function PreventExit(){
WebSocketEmit.on('fakeEvent', function () {
console.log('Just fake - to keep node running!');
});
setTimeout(function(){}, 100000);
process.stdin.resume();
}
}
}
更新1:
我的 Web Socket 提供商 CoinBase 最近更新了他们的 API。从 Coinbase-exchange 到 Gdax。我只是尝试替换:
var Gdax = require('gdax');
var CoinbaseExchange = require('coinbase-exchange');
//var websocket = new Gdax.WebsocketClient();
var websocket = new CoinbaseExchange.WebsocketClient();
现在我的应用正在等待!但是在只收到 1 个 json 对象后,我的节点应用程序仍然退出!??我如何使它保持连接打开而不仅仅是关闭?而是继续从 API 接收数据?
更新 2
当我删除我所有的测试代码并且只有与 API 相关的代码时,它可以工作 - 但只适用于旧的...coinbase-exchange?所以它一定是新的(gdax)API中的错误还是什么?但是没有抛出异常??
请在此处查看文档:
https://www.npmjs.com/package/coinbase-exchange#websocket-client
https://www.npmjs.com/package/gdax#websocket-client
DOC 的进一步说明(这没有任何意义 - 只有旧 API 仍在工作):
GDAX 转换 作为 Coinbase Exchange 更名为 GDAX 的一部分,API 端点发生了变化。旧的 *.exchange.coinbase.com 端点将继续工作到 2016 年 8 月 24 日。有关新端点,请参阅以下文档。
【问题讨论】:
-
你是否在某个地方调用了 initws?
-
是的 - 我的 initws() 是从我的 server.js 文件中调用的......我从 CMD 开始由“节点服务器”
-
除非我错过了什么,否则您不会在代码中的任何地方等待连接。如果你这样做了,节点将不会退出。
-
websocket.on 正在等待响应...
标签: javascript node.js exit event-loop