-1
나는 소비자를 생성하여 kafka 서버의 메시지를 듣고 있는데, 지금 은 kafka에서 메시지를 받고있다. socket.io
을 사용하는 클라이언트에게이 메시지를 보내야한다. 메시지를 받으면 나는 내보낼 수출 방법을 만든다. 그래서 아래의 코드에서 나는 시작 메서드를 내 보낸 소비자와 socket.io
연결을 시작할 수있다. 그러나 던지는 예외 ./main require는 함수가 아니다. 소비자가 수신하면 어떻게 socket.io
을 사용하여 메시지를 보낼 수 있습니까?함수에서 노드 모듈을 내부에서 호출하는 방법은 무엇입니까?
main.js :
var Consumer = {
start:function(scfun) {
var consumer_client = new kafka.Client(kafkaConn, clientId);
var client = new Client(consumer_client.connectionString, clientId);
var consumer = new HighLevelConsumer(client, topics, options);
consumer.on('message', function(message) {
logger.log('info', message.value);
scfun(message.value);
});
consumer.on('error', function(err) {
console.log('error', err);
});
};
};
module.exports = Consumer;
main.js
function start() {
var consumer_client = new kafka.Client(kafkaConn, clientId);
var client = new Client(consumer_client.connectionString, clientId);
var consumer = new HighLevelConsumer(client, topics, options);
startConsumer(consumer);
};
function startConsumer(consumer) {
consumer.on('message', function(message) {
logger.log('info', message.value);
exports = module.exports = function(io) {
io.sockets.on('connection', function(socket) {
socket.emit('ditConsumer', message.value);
});
}
});
consumer.on('error', function(err) {
console.log('error', err);
});
};
exports.start = start;
는
var ditconsumer = require('./main');
server.listen(3000, function() {
console.log('Example app listening on port 3000!');
Producer.startProducer();
ditconsumer.start();
});
정확한 오류 란 무엇인가요? – SLaks
throwing error ditconsumer가 함수가 아닙니다. – hussain
startConsumer 함수를 실행할 때 코드에서 내보내기를 바꿉니다. 그 대신 새로운 부동산으로 수출을 확장하십시오. 나는 exports.startConsumer = function (io)을 의미합니다 .... –