Node.js Express 3 does not serve socket.io.js

I'm trying to follow the instructions here

http://socket.io/#how-to-use

However, I seem to be too dumb to understand why I cannot reference socket.io.jss on the client side. I read similar messages here, but they do not seem to be correct: NodeJS Express does not serve '/socket.io/socket.io.js'

Here is the full list of applications:

var application_root = __dirname, express = require('express'), //Web framework path = require('path'), //Utilities for dealing with file paths pg = require('pg'); //Postgres integration //Create server var app = express(); // Configure server app.configure(function () { //parses request body and populates request.body app.use(express.bodyParser()); //checks request.body for HTTP method overrides app.use(express.methodOverride()); //perform route lookup based on url and HTTP method app.use(app.router); //Where to serve static content app.use(express.static(path.join(application_root, 'public'))); //Show all errors in development app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); //Start server var port = 4711; app.listen(port, function () { console.log('Express server listening on port %d in %s mode', port, app.settings.env); }); //Start socket.io var server = require('http').createServer(app), io = require('socket.io').listen(server); 

Now, if I try to reference js on the client side, I get 404.

 <script src="/socket.io/socket.io.js"></script> 

Does anyone know why Express 3 does not allow socket.io to serve the client library?

+4
source share
1 answer

I found the answer here

Socket.io is not supported in /socket.io/socket.io.js

Read http://expressjs.com/api.html#app.listen , note how app.listen is defined.

In short: replace app.listen with server.listen.

+4
source

Source: https://habr.com/ru/post/1484314/


All Articles