【问题标题】:chat application using socket.io in node js在节点 js 中使用 socket.io 的聊天应用程序
【发布时间】:2020-06-09 16:41:31
【问题描述】:

我正在使用带有 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 follow

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));
});

Facing this error

【问题讨论】:

  • 您的createServer 实例在哪里?您必须将io 链接到它
  • 嘿伙计,如果你正在寻找一个例子,我在github.com/halilcakar/private-chat有一个私人聊天应用程序

标签: node.js websocket socket.io


【解决方案1】:

你需要这样的东西:

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

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

【讨论】:

  • 这是我定义端口的 app.js 文件
  • var express = require('express'); var http = require('http').Server(app); var io = require('socket.io')(http); const expressLayouts = require('express-ejs-layouts'); var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var app = express(); app.set('视图引擎', 'ejs'); app.use(expressLayouts); app.use('/', indexRouter); app.use('/users', usersRouter);常量 PORT =process.env.PORT || 8000; app.listen(PORT, console.log('服务器在端口启动:' + PORT)) app.use(function(req, res, next) { next(createError(404)); }); module.exports = 应用程序;
  • 由于允许的字符限制,我无法发布整个代码
  • 您应该用代码更新您的问题,从评论中无法理解它
猜你喜欢
  • 2016-04-12
  • 2014-10-05
  • 2012-05-22
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
相关资源
最近更新 更多