Javascript 发送至Kafka和io的聊天信息。连接引用错误
我有点困惑。 我有一个聊天窗口,输入用户名和消息。 我已经添加了一个Javascript 发送至Kafka和io的聊天信息。连接引用错误,javascript,apache-kafka,socket.io,producer-consumer,eventemitter,Javascript,Apache Kafka,Socket.io,Producer Consumer,Eventemitter,我有点困惑。 我有一个聊天窗口,输入用户名和消息。 我已经添加了一个btn.addEventListener,我希望用户键入的消息发送给卡夫卡。 我想我应该使用EventEmmiter将消息发送给producer,然后从那里发送到Kafka,我在chat.js上的代码是 var socket = io.connect('http://localhost:8000'); const EventEmitter = require ("events"); class MyEmit
btn.addEventListener
,我希望用户键入的消息发送给卡夫卡。
我想我应该使用EventEmmiter将消息发送给producer,然后从那里发送到Kafka,我在chat.js上的代码是
var socket = io.connect('http://localhost:8000');
const EventEmitter = require ("events");
class MyEmitter extends EventEmitter{}
var emitter = new MyEmitter();
// linking Variables to indexhtml
var message = document.getElementById('message');
var username = document.getElementById('username');
var btn = document.getElementById('send');
var output = document.getElementById('output');
var feedback = document.getElementById('feedback');
btn.addEventListener('click', function(){
socket.emit('chat', {
message: message.value,
username: username.value
});
emitter.emit("chat",function(){
message: message.value;
});
message.value = "";
});
关于我的制片人,我有
const { Kafka } = require('kafkajs')
const emitterr = require("../public/chat.js")
const kafka = new Kafka({
clientId: 'my-producer',
brokers: ['localhost:9092','localhost:9093']
})
const producer = kafka.producer()
const topic = 'animal'
const produceMessage = async () => {
const value = emitterr.on('chat');
console.log(value);
try {
await producer.send({
topic,
messages: [
{ value },
],
})
} catch (error) {
console.log(error);
}
}
此外,我无法测试这一点,因为出于某种原因,当我向chat.js添加任何内容时,我会
var socket = io.connect('http://localhost:8000');
^
ReferenceError: io is not defined
在index.html上我有
<html>
<head>
<meta charset="utf-8">
<title>WebScocket Chatroom</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.1/socket.io.js"></script>
<link href="/styles.css" rel="stylesheet" />
</head>
<body>
<div id="socket-chatroom">
<h2>Chat</h2>
<div id="chat-window">
<div id="output"></div>
<div id="feedback"></div>
</div>
<input id="username" type="text" placeholder="Username" />
<input id="message" type="text" placeholder="Message" />
<button id="send">Send</button>
</div>
</body>
<script src="./chat.js"></script>
<script src="pushnotification/client.js"></script>
</html>
网络聊天室
聊天
发送
我对这一点很陌生,我不知道为什么会发生这种情况,我无法理解。如果有人能解释一下,如果思考的方式是正确的,我会非常感激。
编辑:如果我添加事件发射器,我会得到引用错误(它以前工作过),但即使我删除了更改,它也不会工作。不清楚您在哪里定义
io
。。。您应该在require行之后定义套接字