gpt4 book ai didi

node.js - ExpressJs - SocketIo.client - 发出不工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:14 26 4
gpt4 key购买 nike

我正在尝试连接到 crypto Compare 的 API Websockets 以获取加密货币的最新价格。我使用 expressjs 作为我的服务器,并使用 socketio 连接到 crypto Compare。然而,在记录connected之后似乎没有发生任何其他事情。这是我第一次尝试使用套接字,所以我有点不明白为什么 io.emit 函数没有触发任何东西。另外,connect 的回调似乎存在问题,因为 socket 未定义!

为什么emit似乎没有做任何事情?

我的 app.js 文件:

const express  = require('express');
const app = express();
const clientIo = require('./lib/client-socket/crytpto-compare-socket');

clientIo.connect();

app.disable('x-powered-by');

module.exports = app;

加密比较socket.js

const io      = require('socket.io-client');
const configs = require('./../config/configs');

const crytpCompareConfigs = configs.get('CRYPTO_COMPARE_API');
const cryptoCompareEndpoint = crytpCompareConfigs.ENDPOINT;

const cryptoCompareSocket = io(cryptoCompareEndpoint, {reconnect: true});

cryptoCompareSocket.on('connect', (socket) => { // socket here is undefined
console.log('Connected');
cryptoCompareSocket.emit('SubAdd', { subs: crytpCompareConfigs['LIST_OF_ITEMS']});
});

cryptoCompareSocket.on('SubAdd', (from, msg) => {
console.log('Hello');
console.log(from);
console.log('*******');
console.log(msg);
});

module.exports = cryptoCompareSocket;

最佳答案

您使用的代码是客户端代码。此代码不会在回调中返回套接字,因为客户端已经知道其连接的套接字。

您正在订阅套接字服务,但您没有任何代码来响应从该服务发送的数据。

当加密比较返回数据时,它会发送“m”事件。所以你需要回复“m”。

一个例子

cryptoCompareSocket.on("m", function(message) {
console.log(message);
});

关于node.js - ExpressJs - SocketIo.client - 发出不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48389980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com