Websocket Frage

08/11/2014 22:10 FreewayC#1
Hi,

um mich kurz zu fassen:

Code:
socket.on('joinRoom',function(roomName){

});
// Wenn der Client diese function mit "socket.emit('joinRoom') aufruft, soll der Websocket ihn auf eine andere HTML5 Seite weiterleiten, ohne einen neuen Socket zu initalisieren -> D.h. die Socket ID sollte gleich bleiben.

Ist dies überhaupt möglich?

Weiß leider nur, das der Server die verfügbaren Seiten über

Code:
app.get('/', function(req, res){
  res.sendfile('index.html');
});
bereitstellen kann


freundliche Grüße
08/11/2014 22:21 Thr!ce#2
Lass doch einfach den Client rerouten?

Habe so etwas Ähnliches schon einmal mit Angular und Tornado gemacht:

PHP Code:
    $scope.join = function(game) {
        if(
game.players.length game.rules.maxPlayers) {
            
client.send({
                
data: {
                    
idgame.id
                
},
                
type"method",
                
method"joingame",
            });

            
$state.go("game");
        } else {
            
window.alert("GAME IS FULL");
        }
    }; 

Kannst genauso gut noch mit einer Response arbeiten, so dass erst gejoint wird, wenn der Server auch das OK gibt.

Würde dir auch dazu raten, mit selbst generierten IDs zu arbeiten, dann kannst du auch mal F5 drücken ohne, dass es zu Problemen kommt. (Dann kann natürlich auch der Server routen)
08/11/2014 22:29 FreewayC#3
Gibts dazu noch ein paar informative Seiten im Internet?

gruß
08/15/2014 19:11 PseudoPsycho#4
Die HTML-Seite zu wechseln, sollte nicht ohne weiteres möglich sein. Du könntest aber die entsprechenden Inhalte per Ajax nachladen, wodurch man die Seite nicht mehr verlassen müsste.
Oder aber du versuchst, die Verbindung innerhalb eines Shared Workers aufzubauen. Das wird jedoch in den meisten Browsern nicht funktionieren...