Comment identifier de manière unique une prise avec Node.js
TLDR; Comment identifier les sockets en cas en fonction du modèle de programmation.
Je commence tout juste avec node.js dans le passé, j'ai effectué la plupart de mes codage
partie en C++ et PHP sockets() node.js est quelque chose de très nouveau pour moi.
En c++ pour identifier un socket, nous l'aurions fait quelque chose comme la rédaction d'un socket principale disent serveur à l'écoute pour de nouvelles connexions et de modifications, puis sur la gestion de ces connexions en conséquence.
OriginalL'auteur ShrekOverflow | 2011-07-24
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la recherche de réelles prises et pas de prise.io, ils n'existent pas.
Mais comme l'a dit, Node.js et Javascript utiliser un événement basé sur le modèle de programmation, afin de vous créer un (TCP) socket en écoute sur une adresse IP:port (semblable à lier), puis d'accepter les événements de connexion qui passe d'un objet Javascript représentant la connexion.
De cela, vous pouvez obtenir le FD ou un autre identifiant, mais cet objet est aussi une longue durée de vie de l'objet que vous pouvez stocker un identifiant si vous le souhaitez (c'est ce socket.io n').
Voir une autre réponse ci-dessous concernant dangereux l'utilisation de
Math.random
à ce point (c'est à dire ne pas faire comme dans l'exemple ci-dessus). Toutefois, tant que l'ID est utilisé uniquement sur les serverside, je ne vois pas une raison pour ne pas simplement compter jusqu'à un nombre et à l'aide que. Il n'y a aucun avantage pour quiconque d'être en mesure de deviner le prochain ID (en dehors du fait que personne ne connaît le numéro suivant, à moins qu'ils aient accès à la mémoire interne). Veuillez me corriger si je me trompe.Pourquoi c'est toujours la meilleure réponse? À l'aide de Random avec des Id? Bad Bad!
Il est destiné à être un exemple, n'est pas la meilleure façon de générer un id unique. Je ne sais pas comment faire pour recommander une réponse différente à être accepté, je pense que la personne qui pose la question doit le faire. Je ne, cependant, considérer la réponse ci-dessous pour être supérieure à la mienne.
OriginalL'auteur Timothy Meade
De timothée démarche est la bonne, la seule chose à mentionner Math.random() peut causer de l'id de la duplication. Si la chance il va générer le même nombre aléatoire est vraiment minuscule, mais ça peut arriver. Donc, je vous recommande d'utiliser dylang du module - shortid:
Donc, dans ce cas, vous pouvez être sûr qu'aucune id de duplications va se produire.
shortid est bon. Mais parfois nous avons juste besoin integer Id pour réduire la transmission de la circulation.
Dans ce cas, je serais probablement utiliser un stockage (comme le redis), pour stocker le dernier id généré. Chaque fois qu'une connexion entrante se produit - identifier avec l'identifiant, et elle bosse dans le redis par 1.
OriginalL'auteur ecdeveloper
Vous devez revenir en arrière, parce que JavaScript est un prototype de base, langage de script orienté objet qui est dynamique, faiblement typé et possède des fonctions de classe. Ils sont tous les deux complètement différentes langues et vous devrez avoir un autre état d'esprit pour écrire propre code JavaScript.
https://github.com/LearnBoost/Socket.IO/wiki/Migrating-0.6-to-0.7
d'accord très bien. Je pensais que tu voulais JavaScript pour ressembler à du C++, mais j'ai si mal ...
^_^ j'aime JavaScript plus de C++ en raison de sa liberté avec le code. mais le C++ dispose de différents avantages 🙂 . Je donnerai ya crédits sur le site web du projet pour aider ^_^ .
Haha merci Darkyen 🙂
donc, beaucoup de gens heureux ^_^
OriginalL'auteur Alfred
mmmm, je n'ai pas vraiment obtenir ce que vous voulez, mais à souder-programmation avec node.js (et de la prise.io) est vraiment simple. jetez un oeil à quelques exemples sur la socket.io page d'accueil:
sur la connexion à un serveur, à chaque prise d'obtenir un identifiant unique qui vous permet de l'identifier plus tard.
espérons que cette aide!?
cheers
OriginalL'auteur pkyeck
si vous avez trouvé cette question par la recherche de
socket.io
identifiants uniques que vous pouvez utiliser pour différencier entre les prises de courant sur le côté client (comme je l'ai fait), puis ici, c'est une réponse très simple:à chaque nouvelle connexion au
id
est incrémenté sur le server-side. cela garantit un id unique.J'utilise cette méthode pour déterminer si une émission est venu sur le client et l'enregistrement des données simultanés sockets.
par exemple:
côté serveur
côté client
En fait, selon blog.raananweber.com/2015/06/17/... je suppose qu'il ne devrait pas l'être.
OriginalL'auteur low_rents
Comment identifier un client basé sur son support id. Utile pour la messagerie privée et d'autres choses.
À l'aide d'une douille.io v1.4.5
côté client:
côté serveur:
C'est juste pour montrer comment le faire priivate de messagerie. Pour savoir si l'utilisateur est actif ou non. Il est possible d'utiliser db stockage active id en db et de la requête si le destinataire est encore actif ou pas. Avez-vous une suggestion sur la façon de maintenir actif le socket client? Écrire l'homme au lieu de simplement downvoting. Nous sommes tous ici pour apprendre.
Également dans le commentaire que j'ai écrit mis en tableau ou quelque chose. Pour l'obtenir? Ou quelque chose signifie des milliers de façons de le faire
Semble que vous êtes un peu énervé n de crier .... calmer garçon ... mais downvoted coz votre post est ce qui suggère une faute professionnelle. D'accord ?
Les gens ici ne sont pas pour apprendre, mais d'apprendre les meilleures pratiques exactement et un post de donner des suggestions ambiguës/les malversations ne les aidera pas. À des fins d'apprentissage, il y a l'enfer de beaucoup de blogs et de sites.... d'y aller.
OriginalL'auteur jumper rbk