通过 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"
}
bannerAds