关键代码片段:
var kafka = require('kafka-node'); var Mock = require('mockjs'); var Producer = kafka.Producer, client = new kafka.KafkaClient(), producer = new Producer(client); producer.on('ready', function() { setInterval( () => { var payloads = getPayloads(); producer.send(payloads, function(err, data) { // console.log(data); }) }, 10000 ); setInterval( () => { var stsObject = getStatusPayloads(); producer.send(stsObject.payloads, function(err, data) { // console.log(data); }) var sensorstsObject = getSensorStatusPayloads(); producer.send(sensorstsObject.payloads, function(err, data) { // console.log(data); }) }, 30000 ) }); producer.on('error', function(err) { console.log(err); }); /*function getPayloads() { var number = Mock.mock('@integer(1, 5)'); var msg = '6184000' + number + "," + Mock.Random.now('minute') + ","; if (number == 5) { msg += Mock.mock('@float(200, 220, 2, 2)') + '@'; msg += Mock.mock('@float(0, 3, 2, 2)') + '@'; msg += Mock.mock('@float(20, 100, 2, 2)') + '@'; msg += Mock.mock('@float(0, 0, 2, 2)') + '@'; msg += Mock.mock('@float(49, 50, 2, 2)') + '@'; msg += Mock.mock('@float(0, 10, 2, 2)'); } else { msg += Mock.mock('@float(20, 100, 2, 2)'); } console.log("===消息内容:=== ", msg); var payload = { topic: 'IOT-DATA', messages: msg } return [payload]; } function getStatusPayloads() { var status = Mock.mock('@integer(0, 1)'); var id = Mock.mock('@integer(1, 2)'); var msg = 'C184000' + id + "," + Mock.Random.now('minute') + "," + status; console.log("===消息内容:=== ", msg); var payload = { topic: 'CLIENT-STATUS', messages: msg } return { payloads: [payload], status: status, id: id }; } function getSensorStatusPayloads() { var status = Mock.mock('@integer(0, 5)'); var id = Mock.mock('@integer(1, 5)'); var msg = '6184000' + id + "," + Mock.Random.now('minute') + "," + status; console.log("===消息内容:=== ", msg); var payload = { topic: 'IOT-SENSOR-STATUS', messages: msg } return { payloads: [payload], status: status, id: id }; }*/ function getStatusPayloads() { var msg = 'C1840002,' + Mock.Random.now('minute') + ", 1"; console.log("===消息内容:=== ", msg); var payload = { topic: 'CLIENT-STATUS', messages: msg } return { payloads: [payload] }; } function getSensorStatusPayloads() { var status = Mock.mock('@integer(0, 5)'); var msg = '61840005,' + Mock.Random.now('minute') + "," + status; console.log("===消息内容:=== ", msg); var payload = { topic: 'IOT-SENSOR-STATUS', messages: msg } return { payloads: [payload] }; } function getPayloads() { var msg = '61840005,' + Mock.Random.now('minute') + ","; msg += Mock.mock('@float(200, 220, 2, 2)') + '@'; msg += Mock.mock('@float(0, 3, 2, 2)') + '@'; msg += Mock.mock('@float(20, 100, 2, 2)') + '@'; msg += Mock.mock('@float(0, 0, 2, 2)') + '@'; msg += Mock.mock('@float(49, 50, 2, 2)') + '@'; msg += Mock.mock('@float(0, 10, 2, 2)'); console.log("===消息内容:=== ", msg); var payload = { topic: 'IOT-DATA', messages: msg } return [payload]; }
文章来源: Nodejs֮Kafkaƪ