NodeJS Express not serving '/socket.io/socket.io.js'

穿精又带淫゛_ 提交于 2020-01-21 06:35:50

问题


I am trying to build NodeJS/Express/SocketIO application.

Imports:

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

Configuration:

app.configure(function(){
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser('your secret here'));
    app.use(express.session());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
});

In my Jade template:

script(type='text/javascript', href='/socket.io/socket.io.js')

But '/socket.io/socket.io.js' is not available when I am trying to reach it on

http://localhost:3000/socket.io/socket.io.js

As it says:

Cannot GET /socket.io/socket.io.js

How do I serve socket.io.js from the installed module?

Thanks


回答1:


You need to copy the client code from an inner Socket.io directory to your public directory. In Socket 0.9, the path to the distributable files is node_modules/socket.io/node_modules/socket.io-client/dist.




回答2:


You do not have to copy any files, socket.io will take care of the delivery of the file.

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



回答3:


In Express 3/4 you can initialize socket.io like so:

var io = require("socket.io")(app.listen(80));



回答4:


There is an error, use

script(type='text/javascript', src='/socket.io/socket.io.js')

instead of

script(type='text/javascript', href='/socket.io/socket.io.js')


来源:https://stackoverflow.com/questions/13458366/nodejs-express-not-serving-socket-io-socket-io-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!