2017-06-09 10 views
0

Ich bin eine App mit Ionic 2 zu bauen, um zu lernen, wie man eine Echtzeit mit Socket.io erstellen. Ich habe die Grundlagen dafür gelernt, wie Socket.io funktioniert, aber ich versuche zu verstehen, wie man einen Benutzer zufällig mit einem anderen verbindet.Verbinden mit einem zufälligen Benutzer mit Socket.io

Hier ist, wie ich meine App entwerfen würde:

  • Benutzer eine Schaltfläche „Launch Game“ haben auf ihrem Bildschirm
  • Nach Anklicken dieser Schaltfläche zwei Benutzer sollten zufällig miteinander verbunden werden. Wenn Benutzer 1 auf die Schaltfläche "Spiel starten" klickt, wird in der Tat während 20 Sekunden ein neuer Wartescreen angezeigt. Während dieser 20 Sekunden sollte ich mit einem anderen Benutzer verbunden sein, der auf diesem Bildschirm irgendwo anders auf der Welt wartet.

Meine Gedanken wäre ein Ereignis an den Socket.io-Server zu senden, wenn die Benutzer klicken Sie auf „Spiel starten“ klicken, wie:

this.socket.emit('find_player', this.current_user_id); 

Aber dann, wie wird es in der Arbeit socket.io Server? Kannst du mich ein wenig führen?

Danke!

Antwort

0

Ich denke, Sie können nicht direkt zwei Benutzer mit socket.io verbinden. Verwenden Sie Ihren NodeJs-Server als Mittelmann. Wenn ein Spieler auf "Spiel starten" klickt, können Sie eine Lobby/einen Raum erstellen ... Dies kann Ihnen helfen, Ihre Spieler auf dem gleichen Level (oder etwas) zu paaren. Also: Wenn ein Spieler auf "Spiel starten" klickt, versuche einen Serverraum mit einem Spieler mit dem gleichen Level zu finden. Wenn es nicht existiert, erstelle einen neuen und lass ihn auf einen neuen Gegner warten. Versuchen Sie, ein Objekt-Array von Räumen zu verwenden, in denen jedes Zimmer mit einem oder mehreren Spielern verbunden ist.

Siehe auch: Creating Rooms in Socket.io