私のnode.jsサーバーにはkafka-nodeを使用しています - kafkaトピックに接続するためです。 APIには、コールバック関数があります。kafka-node - 非同期関数に引数を渡します。consumer.on();
consumer.on('message', function (message) {
console.log(message);
});
到着時にメッセージを消費します。
私はこのコールバック関数に引数を追加できますか?私はメッセージが到着したときにそれを呼び出す関数ではないからです。
具体的には、私が期待されるIDを送信し、消費メッセージIDとそれを比較したい:
consumer.on('message', function (message, id) {
if (id == message.id)
console.log(message);
});
EDIT: これは、より大きなコードのスニペットです。 フルフロー:
- ユーザーはnode.jsサーバーからhttp要求を要求します。
- GET HTTPリクエストがnode.jsサーバーでトリガーされています。
- kafkaプロデューサは、(一意のIDを持つ)いくつかのメッセージを外部システムに送信し、応答を待ちます。
- カフカ消費者に返信されます。受信したメッセージIDは、期待されるIDと比較されます(等しい場合) - http応答としてメッセージを返します。
複数のhttp get要求を並行して受信できるとします。
イベントは、idという2番目のパラメータを渡しますが、 'id == message.id'は常に' true'になります。それで、あなたはここで何を期待していますか? – Oxi
@Oxiもっと正確に投稿を編集しました。 – ItayB