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行之后定义套接字