通过 kafka-proxy-ws 将数据传递给 Node.js
你好。
我找到了kafka-proxy-ws,所以试着把数据传递给 react-websocket(客户端 App.js)。然而,当我传递”1\n2\n3″并查看结果显示时,似乎只处理了最后的3(加法结果只有3)。
计数:1 → 4 → 7
$ mkdir kafkaProxy
$ cd kafkaProxy
$ vi server.js
$ vi package.json
$ npm install
$ node server.js &
$ echo -e "1\n2\n3" | kafkacat -P -b localhost -t test
$ echo -e "1\n2\n3" | kafkacat -P -b localhost -t test
$ npx create-react-app react-websocket
$ cd react-websocket
$ vi src/App.js
$ npm start
import React, { useState } from 'react';
import Websocket from 'react-websocket';
function App() {
const [count, setCount] = useState(1);
function handleData(data) {
JSON.parse(data).forEach(res => {
setCount(count + Number(res.message));
});
}
return (
<div>
Count: <strong>{count}</strong>
<Websocket url='ws://localhost:9999/?topic=test&consumerGroup=group1'
onMessage={handleData.bind(this)}/>
</div>
);
}
export default App;
'use strict';
const KafkaProxy = require('kafka-proxy');
let kafkaProxy = new KafkaProxy({
wsPort: 9999,
kafka: 'localhost:9092/',
});
kafkaProxy.listen();
{
"name": "kafkaProxy",
"version": "1.0.0",
"scripts": {},
"description": "WebSockets based proxy for Kafka",
"author": "lawrips <lawrips@microsoft.com>",
"dependencies": {
"debug": "^2.2.0",
"kafka-proxy": "^1.0.0",
"no-kafka": "^2.5.5",
"path-to-regexp": "^1.2.1",
"ws": "^1.0.1"
},
"main": "server.js",
"devDependencies": {
"commander": "^2.9.0",
"should": "^9.0.2"
},
"repository": {
"type": "git",
"url": "https://github.com/Microsoft/kafka-proxy-ws.git"
},
"keywords": [
"kafka",
"proxy",
"reverse proxy",
"ws",
"websockets",
"websocket",
"socket",
"sockets"
],
"license": "MIT"
}