node.js - 在节点 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));
});
解决方案
你需要这样的东西:
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
server.listen(process.env.PORT || 8000);
推荐阅读
- javascript - axios multipart/form-data - 获取估计的编译时间
- r - 相对于组内的整体变化创建滞后
- sql-server - SQL Server - CLR 函数用户权限
- spring-boot - CompletableFuture 和 MockMVC
- python - 在 plotly 中绘制分组的熊猫数据
- postgresql - 如何在 postgresql 中跟踪 sql 查询
- .net - 将 .net 核心 DLL 编译为 .net 框架 DLL
- xamarin - 如何在 Xamarin.iOS 中注册自定义文件类型关联?
- android - 如何更改资源限定符以显示不同语言的按钮?
- android - 在 ConstraintLayout 错误的约束部分定义 id (@+id)