Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change Socket.IO static file serving path

Tags:

I am using Socket.IO on a Node server with a basic HTTP server (no Express or Connect or anything like that). By default, Socket.IO serves the client file to

/socket.io/socket.io.js

I would like to be able to change that base path to something else, like

/foo/bar/socket.io/socket.io.js

Is there any built-in way to do this, or any way without changing Socket.IO's code? I think the answer lies in the Static module (require('socket.io').Static)), but short of writing my own to replace the default, I see no way to go and change the way that behaves.

How can I do this?

like image 612
Alex Turpin Avatar asked Oct 10 '12 17:10

Alex Turpin


2 Answers

The resource option allows you to configure socket.io's root directory. It defaults to /socket.io.

var io = require('socket.io').listen(app, { resource: '/foo/bar/socket.io' }); 

Note that this setting also affects where socket.io's endpoints are served from, so you must also change this setting in your client code.

var socket = io.connect('http://example.com', { resource: 'foo/bar/socket.io' }); 

(Note we don't use a leading slash here for some reason.)

like image 174
josh3736 Avatar answered Sep 22 '22 14:09

josh3736


For socket.io version 1.2.1, this works for me.

Server side:

var io = require('socket.io')({path: '/foo/bar'}); 

Client side:

var socket = io.connect('http://example.com', {path: '/foo/bar'}); 

FYI: http://socket.io/docs/migrating-from-0-9/#configuration-differences

like image 31
Link Avatar answered Sep 24 '22 14:09

Link