In the third version of ExpressJS express.createServer() changed to express() this changes makes difficult to bind socket.io on a same port. Maybe somebody could find robust decision.
Now, this doesn't work:
var express = require('express')
, app = express.createServer()
, io = require('socket.io').listen(app);
My current workflow: https://gist.github.com/3596852
On Scalingo, your application must listen to the port defined in the PORT environment variable dynamically defined by the platform.
We make the http server listen on port 3000.
I know that Express apps default to port 3000.
It's described on the socket.io github page (as @Golo stated in your comment):
var app = express() , server = require('http').createServer(app) , io = io.listen(server); server.listen(80);
This works, I have it running.
Probably what Golo have forgotten is to change the listen from app.listen(80)
to server.listen(80)
. I've struggled with this too until I realised my stupid mistake.
var app = require('express')() , server = require('http').createServer(app) , io = require('socket.io').listen(server) app.start = app.listen = function(){ return server.listen.apply(server, arguments) } app.start(8080)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With