Q:

Socket.IO WebSocket server/page different hosts

Using Socket.IO's WebSocket I have successfully managed a chat application from my home computer where both the index.html and app.js (server) located together. Since my webhost does not offer WebSockets I want to host the app.js (server) on my computer and the actual webpage where it connects on my webhost. I am having difficulties establishing a connection. My port is forwarded. I believe its something in my app.js that I need to change to establish the link. Here is my code
app.js (server, run off local computer)
var app = require('express').createServer()
var io = require('socket.io').listen(app);

app.listen(8080);

// routing
app.get('/', function (req, res) {
  res.sendfile('http://mywebhost.com/chat.php');
});

// usernames which are currently connected to the chat
var usernames = {};

// rooms which are currently available in chat
var rooms = ['room1','room2','room3'];

io.sockets.on('connection', function (socket) {

// when the client emits 'adduser', this listens and executes
socket.on('adduser', function(username){
    // store the username in the socket session for this client
    socket.username = username;
    // store the room name in the socket session for this client
    socket.room = 'room1';
    // add the client's username to the global list
    usernames[username] = username;
    // send client to room 1
    socket.join('room1');
    // echo to client they've connected
    socket.emit('updatechat', 'SERVER', 'you have connected to room1');
    // echo to room 1 that a person has connected to their room
    socket.broadcast.to('room1').emit('updatechat', 'SERVER', username + ' has connected to this room');
    socket.emit('updaterooms', rooms, 'room1');
});

// when the client emits 'sendchat', this listens and executes
socket.on('sendchat', function (data) {
    // we tell the client to execute 'updatechat' with 2 parameters
    io.sockets.in(socket.room).emit('updatechat', socket.username, data);
});

socket.on('switchRoom', function(newroom){
    // leave the current room (stored in session)
    socket.leave(socket.room);
    // join new room, received as function parameter
    socket.join(newroom);
    socket.emit('updatechat', 'SERVER', 'you have connected to '+ newroom);
    // sent message to OLD room
    socket.broadcast.to(socket.room).emit('updatechat', 'SERVER', socket.username+' has left this room');
    // update socket session room title
    socket.room = newroom;
    socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username+' has joined this room');
    socket.emit('updaterooms', rooms, newroom);
});

// when the user disconnects.. perform this
socket.on('disconnect', function(){
    // remove the username from global usernames list
    delete usernames[socket.username];
    // update list of users in chat, client-side
    io.sockets.emit('updateusers', usernames);
    // echo globally that this client has left
    socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected');
    socket.leave(socket.room);
});
});

chat.php (run on webhost)
<script>
var socket = io.connect(\'http://scope.bnetweb.org:8080\');
// various irrelevant javascript

in app.js I am fairly sure I need to change the
app.get('/', function (req, res) {
  res.sendfile('http://mywebhost.com/chat.php');
});

to something else? Or remove it entirely? I think this is Socket.IO's way of making sure no unauthorized connections are made. Any help is greatly appreciated in achieving this.

A:

Solved by simply not splitting them up. IT appears many have this issue that they cannot mix server and client on different hosts. Possibly Socket.IO will make this easier soon. If anyone else comes up with a better alternative, please reply.

