Je dois créer un relais sur le serveur entre différents utilisateurs
connectés derrière un routeur. Pour ce faire, je dois conserver leurs
sockets initiales ouvertes et les relier à leurs sockets de destinations
(qui peuvent être multiples).
Je vois 3 solutions, mais j'ai du mal à évaluer ce qu'elles représentent
en termes de ressources pour le serveur et aussi en délai de temps du
fait qu'il peut y avoir à gérer plus de 10000 connexions simultanées.
1- je crée un tableau dynamique de 2 chaines (socket initiale - socket
destination) je cherche dans le tableau la socket destination, je copie
le message de la socket initiale que j'écrie dans la destination. Au
message de deconnexion je supprime la ligne du tableau.le problème c'est
qu'à la réponse la socket destination devient la socket initiale, donc
gestion des doublons épineuse.
2 - je crée autant de tableaux que de connexions et l'intègre dans la
socket le nom du tableau pour retrouver la socket de destination. je
pense que c'est très moyen.
3- je crée un fichier hf avec le nom de la socket initiale et le socket
destination et j'intègre sans la socket le hNumEnr lors de la création
de la ligne et je fais un hlit() à chaque message et je copie le message
de l'une dans l'autre, avec suppression de la ligne à la fermeture d'une
des 2 sockets.
C'est tout ce que j'ai trouvé pour interconnecter 2 sockets, si vous
pensez qu'il y a mieux, je suis preneur...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
paratge
paratge a écrit :
Bonjour,
Je dois créer un relais sur le serveur entre différents utilisateurs connectés derrière un routeur. Pour ce faire, je dois conserver leurs sockets initiales ouvertes et les relier à leurs sockets de destinations (qui peuvent être multiples).
Je vois 3 solutions, mais j'ai du mal à évaluer ce qu'elles représentent en termes de ressources pour le serveur et aussi en délai de temps du fait qu'il peut y avoir à gérer plus de 10000 connexions simultanées.
1- je crée un tableau dynamique de 2 chaines (socket initiale - socket destination) je cherche dans le tableau la socket destination, je copie le message de la socket initiale que j'écrie dans la destination. Au message de deconnexion je supprime la ligne du tableau.le problème c'est qu'à la réponse la socket destination devient la socket initiale, donc gestion des doublons épineuse.
2 - je crée autant de tableaux que de connexions et l'intègre dans la socket le nom du tableau pour retrouver la socket de destination. je pense que c'est très moyen.
3- je crée un fichier hf avec le nom de la socket initiale et le socket destination et j'intègre sans la socket le hNumEnr lors de la création de la ligne et je fais un hlit() à chaque message et je copie le message de l'une dans l'autre, avec suppression de la ligne à la fermeture d'une des 2 sockets.
C'est tout ce que j'ai trouvé pour interconnecter 2 sockets, si vous pensez qu'il y a mieux, je suis preneur...
Merci d'avance pour votre temps.
Je me reponds car je pense avoir trouvé plus simple :
Lorsqu'un correspondant se connecte, je met à jour son profil en rajoutant le nom de sa socket. j'envoie à tous ses correspondants son profil y compris le nom de sa socket, de ce fait si un de ses correspondants souhaite le joindre, il envoie dans son message le nom de la socket destination, que le serveur utilise pour relayer le message.
Qu'en pensez vous ?
paratge a écrit :
Bonjour,
Je dois créer un relais sur le serveur entre différents utilisateurs
connectés derrière un routeur. Pour ce faire, je dois conserver leurs
sockets initiales ouvertes et les relier à leurs sockets de destinations
(qui peuvent être multiples).
Je vois 3 solutions, mais j'ai du mal à évaluer ce qu'elles représentent
en termes de ressources pour le serveur et aussi en délai de temps du
fait qu'il peut y avoir à gérer plus de 10000 connexions simultanées.
1- je crée un tableau dynamique de 2 chaines (socket initiale - socket
destination) je cherche dans le tableau la socket destination, je copie
le message de la socket initiale que j'écrie dans la destination. Au
message de deconnexion je supprime la ligne du tableau.le problème c'est
qu'à la réponse la socket destination devient la socket initiale, donc
gestion des doublons épineuse.
2 - je crée autant de tableaux que de connexions et l'intègre dans la
socket le nom du tableau pour retrouver la socket de destination. je
pense que c'est très moyen.
3- je crée un fichier hf avec le nom de la socket initiale et le socket
destination et j'intègre sans la socket le hNumEnr lors de la création
de la ligne et je fais un hlit() à chaque message et je copie le message
de l'une dans l'autre, avec suppression de la ligne à la fermeture d'une
des 2 sockets.
C'est tout ce que j'ai trouvé pour interconnecter 2 sockets, si vous
pensez qu'il y a mieux, je suis preneur...
Merci d'avance pour votre temps.
Je me reponds car je pense avoir trouvé plus simple :
Lorsqu'un correspondant se connecte, je met à jour son profil en
rajoutant le nom de sa socket.
j'envoie à tous ses correspondants son profil y compris le nom de sa
socket, de ce fait si un de ses correspondants souhaite le joindre, il
envoie dans son message le nom de la socket destination, que le serveur
utilise pour relayer le message.
Je dois créer un relais sur le serveur entre différents utilisateurs connectés derrière un routeur. Pour ce faire, je dois conserver leurs sockets initiales ouvertes et les relier à leurs sockets de destinations (qui peuvent être multiples).
Je vois 3 solutions, mais j'ai du mal à évaluer ce qu'elles représentent en termes de ressources pour le serveur et aussi en délai de temps du fait qu'il peut y avoir à gérer plus de 10000 connexions simultanées.
1- je crée un tableau dynamique de 2 chaines (socket initiale - socket destination) je cherche dans le tableau la socket destination, je copie le message de la socket initiale que j'écrie dans la destination. Au message de deconnexion je supprime la ligne du tableau.le problème c'est qu'à la réponse la socket destination devient la socket initiale, donc gestion des doublons épineuse.
2 - je crée autant de tableaux que de connexions et l'intègre dans la socket le nom du tableau pour retrouver la socket de destination. je pense que c'est très moyen.
3- je crée un fichier hf avec le nom de la socket initiale et le socket destination et j'intègre sans la socket le hNumEnr lors de la création de la ligne et je fais un hlit() à chaque message et je copie le message de l'une dans l'autre, avec suppression de la ligne à la fermeture d'une des 2 sockets.
C'est tout ce que j'ai trouvé pour interconnecter 2 sockets, si vous pensez qu'il y a mieux, je suis preneur...
Merci d'avance pour votre temps.
Je me reponds car je pense avoir trouvé plus simple :
Lorsqu'un correspondant se connecte, je met à jour son profil en rajoutant le nom de sa socket. j'envoie à tous ses correspondants son profil y compris le nom de sa socket, de ce fait si un de ses correspondants souhaite le joindre, il envoie dans son message le nom de la socket destination, que le serveur utilise pour relayer le message.