我正在尝试使用socket.io和Express库制作一个聊天应用程序。我已经成功创建了路线,但无法正常运行]
路线是
const express = require('express');
const router = express.Router();
var app = express();
const { ensureAuthenticated } = require('../db/auth.js');
var http = require('http').createServer(app);
var io = require('socket.io')(http);
//exporting dashboard
module.exports = {
dash: router.get('/', (req,res)=>{
res.render('dashboard');
io.on('connection', (socket)=>{
console.log('ok');
})
})
};
所有模块都正常工作
这是用javascript/src
编译的我的webpackJs
import io from 'socket.io-client';
import 'bootstrap';
import "jquery";
import 'popper.js';
var socket = io.connect('http://localhost:3000/')
尽管我收到一个错误的响应实例,提示未找到404页在我的app.js
中我打电话给]
const dashboard = require('./routes/dashboard').dash;
app.use('/dashboard',dashboard);
错误是
GET /dashboard 200 27.059 ms - 1392
GET /stylesheets/style.css 200 20.108 ms - -
GET /javascripts/chat.js 200 24.777 ms - -
GET /javascripts/app.js 200 29.079 ms - 824847
GET /socket.io/?EIO=3&transport=polling&t=N3N-9zK 404 5.197 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-AE- 404 6.713 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-Ank 404 8.023 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-C0R 404 5.918 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-DE_ 404 1.510 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-Eeh 404 3.000 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-G6S 404 4.348 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-HaE 404 7.130 ms - 2218
GET /socket.io/?EIO=3&transport=polling&t=N3N-J1y 404 1.463 ms - 2218
这些错误不断出现,looping
本身。我已经尝试了所有可能的答案,并遵循了socket.io
官方文档的指南,但是尽管在我制作new project and an initialize all the codes it just works fine.
时效果很好,但它无济于事我跟踪此错误,发现该链接找不到源代码到我的node_modules
中,但是我不知道如何解决此问题,我也尝试初始化cdnjs of socket.io
,但它也无法t solve this problem
。谁能帮助我,这对我来说是一个严重的问题。
服务器启动代码,在/bin/www
中:
#!/usr/bin/env node
var app = require('../app');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
您需要从路径中删除io
事件并在外部进行定义。并在不使用server
的app
实例上启动服务器。
尝试此示例代码:
const express = require("express");
const router = express.Router();
const { ensureAuthenticated } = require("../db/auth.js");
const app = express();
const server = require("http").createServer(app);
const io = require("socket.io")(server);
const PORT = process.env.PORT || 5000;
io.on("connection", socket => {
console.log("ok");
});
app..get("/", (req, res) => {
res.render("dashboard");
})
server.listen(PORT, () => {
console.log("Server is running");
});