首页 > 解决方案 > 要求未在 .js 文件中的 socket.io 实现中定义

问题描述

我无法在我的应用程序中执行聊天功能。我创建了一个运行我的应用程序的端口 8000。我正在尝试在我的应用程序中实现 socket.io 模块。为此,我创建了另一个名为 chat.js 的文件。首先我将socket定义为socket=io()。然后它显示错误为

//GET /socket.io/?EIO=3&transport=polling&t=NAO4VZg 404 6.362 ms - 1908"

然后经过大量搜索,我发现上述语句的替换为

var socket = require('socket.io-client')('http://localhost:8000/users/chatter', { transports: ['websocket'] })

现在使用此语句运行代码。显示以下错误:

chat.js:1 Uncaught ReferenceError: require is not defined
  at chat.js:1

这是错误的屏幕截图: 错误截图

经过大量搜索后,我发现上述语句的替换为

var socket = require('socket.io-client')('http://localhost:8000/users/chatter', { transports: ['websocket'] })
var message = document.getElementById('message'),
      handle = document.getElementById('handle'),
      btn = document.getElementById('send'),
      output = document.getElementById('output'),
      feedback = document.getElementById('feedback');

// Emit events
btn.addEventListener('click', function(){
    socket.emit('chat', {
        message: message.value,
        handle: handle.value
    });
    message.value = "";
});

message.addEventListener('keypress', function(){
    socket.emit('typing', handle.value);
})

// Listen for events
socket.once('connect', socketConn => {
socket.on('chat', function(data){
    feedback.innerHTML = '';
    output.innerHTML += '<p><strong>' + data.handle + ': </strong>' + data.message + '</p>';
});

socket.on('typing', function(data){
    feedback.innerHTML = '<p><em>' + data + ' is typing a message...</em></p>';
});
}); 

现在使用此语句运行代码。显示以下错误:

chat.js:1 Uncaught ReferenceError: require is not defined
  at chat.js:1

标签: javascriptnode.jswebsocketsocket.io

解决方案


推荐阅读