socket.io为什么找不到源?

问题描述 投票:-1回答:1

我正在尝试使用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);

javascript node.js express socket.io chat
1个回答
0
投票

您需要从路径中删除io事件并在外部进行定义。并在不使用serverapp实例上启动服务器。

尝试此示例代码:

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

© www.soinside.com 2019 - 2024. All rights reserved.