Messagerie instantanée avec Java RMI [HELP]

Résolu/Fermé
ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021 - 7 déc. 2021 à 20:56
ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021 - 9 déc. 2021 à 10:47
Bonjour tout le monde j'espère que vous allez bien ,
j'essaye d'implémenter une messagerie instantanée.
Ma question est:
Est ce possible d'implémenter une MI en utilisant java RMI, et est ce que le RMI ouvre un canal full duplex entre le client et le server (est ce temps réel) ou il faudra faire du polling pour voir si le client a reçu un nouveau message ?.
Merci pour votre aide.


Configuration: Windows / Chrome 96.0.4664.45
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
8 déc. 2021 à 09:02
Bonjour,

RMI permet d'appeler du code distant : tu fournis le nom de la classe, la méthode et les paramètres, ça te renvoie un résultat. C'est en temps réel, mais strictement à sens unique.

Remarque : RMI est un vieux protocole qui n'a plus trop de raison d'être aujourd'hui, il vaudrait mieux faire du REST (avec JAX-RS en Java)
1
ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021
8 déc. 2021 à 19:24
Donc si j'ai bien compris, les rmi ne sont pas comme les socket ou le client peut etre notifier d'une modification sans qu'il est a requeté se qui signifie il faut faire du pooling sur une methode qui retournera au client des message qu'il a reçu.?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021
8 déc. 2021 à 20:56
Le RMI c'est un protocole, les sockets c'est une technologie, il se trouve que pour que ça fonctionne le RMI va utiliser les sockets, mais uniquement dans un sens (un POST en HTTP).

https://docs.oracle.com/en/java/javase/17/docs/specs/rmi/protocol.html

NB. Il existe un mode multiplexé pour que le client et le serveur puisse s'envoyer plusieurs requêtes avec la même connexion, mais ça ne change rien au sens de la communication. Tu appelles une méthode, ce n'est pas elle qui t'appelle.
0
ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021
8 déc. 2021 à 21:25
Merci beacoup, ce qui veut dire si je veux faire une messagerie instantanée avec rmi je dois faire une boucle qui appelle une methode qui renvoie les messages du client, ce qui s'appelle faire du pooling (comme ce qui etait fait sur le web avant l'arrivé de websocket).
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
8 déc. 2021 à 22:33
En effet tu n'auras pas le choix en RMI. Après, même avec des technologies plus récentes, le polling reste une bonne solution pour économiser la consommation de ressources côté serveur.
0
ghostman15418 Messages postés 13 Date d'inscription mardi 20 juillet 2021 Statut Membre Dernière intervention 9 décembre 2021 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
9 déc. 2021 à 10:47
d'accord, je vous remercie énormément pour votre précieuse aide.
0