2016-09-05 1 views
1

Nous avons développé une application web (HTML/CSS/JavaScript côté client, services web côté serveur). Chaque action de l'utilisateur sur les appels côté client à une méthode Web côté serveur. Mais nous avons quelques problèmes lorsque l'utilisateur ouvre plus d'un onglet du navigateur avec notre application, nous avons donc décidé de forcer la déconnexion dans tous les onglets du navigateur (à l'exclusion de l'onglet actuel) chaque fois que l'utilisateur se connecte dans l'onglet du navigateur. Comment nous pourrions mettre en œuvre ce côté client sera en mesure de recevoir des "messages" du côté du serveur?Envoyer un "message" du côté serveur au côté client

+3

Doit être fermé! Utilisez simplement les websockets comme autobahn.ws/node.js/.... –

+1

Je pense que vous devriez ajouter des identifiants/jetons uniques pour chaque instance d'application utilisateur/client de sorte que chaque onglet en crée un et il n'y aurait pas de conflits, au lieu de fermer tous les onglets (mais Telegram fait toujours cela) – booboos

+1

Je suggérerais plutôt de changer l'application pour qu'elle soit conviviale à la manière de travailler préférée de l'utilisateur (plusieurs onglets), plutôt que de surprendre et probablement d'irriter l'utilisateur en la connectant dans d'autres onglets quand on en ouvre un nouveau. –

Répondre

2

Lorsque vous dites l'envoi d'un message de côté serveur à côté client Je suppose que vous ne voulez pas une réponse sur Node.js aime:

res.status(200).send('Hello World') ne vous? Donc, ce dont vous avez besoin, c'est d'utiliser des Websockets. Je vous recommande d'utiliser

Vous avez seulement besoin d'envoyer un message avec un socket sur votre serveur et d'écouter ce message côté client. À l'aide de Websockets, vous pouvez envoyer un message à chaque utilisateur identifié par un ID ou envoyer un message dans une diffusion. Il y a beaucoup de possibilités avec websockests.

Vous pouvez trouver des exemples sur le Web à l'aide de douilles Web. Je pense que c'est ce que vous cherchez.