首页 > 解决方案 > 在节点 js 中使用 socket.io 的聊天应用程序

问题描述

我正在使用带有 Express 的 Socket.io。在我的项目中,我有一个登录页面、注册页面以及更多页面和一个主页。当我成功登录时,我导航到 localhost:8000/chatter,我收到此错误:

GET /socket.io/?EIO=3&transport=polling&t=NANyVHH 404 59.151 ms - 1908

我没有对我的 app.js (由 express 创建的项目)进行任何修改。

app.js 刚刚在 localhost 8000 上创建了一个服务器,并在另一个名为 socketFile.js 的文件中使用了此代码

var socket = io();
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>';
});
}); 

我在 app.js ass 中创建了服务器

const PORT =process.env.PORT || 8000;

app.listen(PORT, console.log('Server started on port : ' + PORT))
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

面对这个错误

标签: node.jswebsocketsocket.io

解决方案


你需要这样的东西:

var app     = express();
var server  = require('http').createServer(app);
var io      = require('socket.io').listen(server);

server.listen(process.env.PORT || 8000);

推荐阅读