Parce que le projet a besoin que certaines données soient envoyées et reçues, la quantité de données étant relativement importante, environ 3 millions de données par jour
Au début, j’utilisais http post pour soumettre les données, mais j’ai constaté que c’était trop lent, et que la vitesse d’envoi était bien plus faible que la vitesse de réception.
Par conséquent, si vous souhaitez utiliser une longue connexion socket pour envoyer et recevoir des données, écrire vous-même le serveur socket et le client, une d’elles est une perte de temps, mais cela peut ne pas être bien fait
Enfin, activemq est utilisé pour envoyer et recevoir des données
Tout d’abord, le code producteur est le suivant :
Pour le consommateur, il existe deux modèles :
1 : Abonnement ordinaire, pas besoin d'« abonnement » persistant, c’est-à-dire qu’en se connectant, vous pouvez recevoir des messages, et vous ne pouvez pas recevoir de messages avant de vous connecter, en utilisant « CreateConsumer » 2 : Abonnement persistant, après la connexion, vous pouvez recevoir des données qui n’ont jamais été envoyées auparavant, en utilisant « CreateDurableConsumer »
Liens vers l’introduction de CreateDurableConsumer :La connexion hyperlientérée est visible.
Créez un abonnement persistant non partagé sur le sujet spécifié s’il n’existe pas déjà, et créez un consommateur sur cet abonnement persistant. Cette méthode crée un abonnement persistant sans utiliser de sélecteur de message, et la valeur noLocal est fausse. L’application utilise un abonnement persistant, et elle doit recevoir tous les messages publiés sur le sujet, y compris ceux publiés lorsqu’aucun utilisateur actif n’est associé. Le fournisseur JMS conserve un enregistrement de cet abonnement persistant et veille à ce que tous les messages de l’éditeur concerné soient conservés jusqu’à ce qu’ils soient livrés au consommateur et confirmés par cet abonnement persistant jusqu’à leur expiration.
Les abonnements persistants continuent d’accumuler des messages jusqu’à ce qu’ils soient supprimés en utilisant la méthode de désabonnement.
Cette méthode ne peut être utilisée qu’avec des abonnements persistants non partagés. Tous les abonnements persistants créés avec cette méthode ne seront pas partagés. Cela signifie qu’un seul consommateur actif (c’est-à-dire non fermé) peut exister sur l’abonnement à la fois. Le terme « consommateur » ici désigne l’objet TopicSubscriber, MessageConsumer ou JMSConsumer dans tout client.
Un abonnement persistant non partagé est identifié par un nom spécifié par le client et un identifiant client qui doit être défini. Les applications qui souhaitent ensuite créer des consommateurs sur un abonnement persistant non partagé doivent utiliser le même identifiant client.
Si un abonnement persistant non partagé avec le même nom et identifiant client existe déjà, et que le même sujet, sélecteur de messages et valeur noLocal sont déjà spécifiés, et qu’aucun consommateur n’est déjà actif (c’est-à-dire non fermé) sur l’abonnement persistant, cette méthode crée un abonnement durable existant sur le MessageConsumer.
Si un abonnement persistant non partagé avec le même nom et identifiant client existe déjà, et qu’un consommateur est déjà actif sur l’abonnement persistant (c’est-à-dire non fermé), un JMSException sera lancé.
S’il existe déjà un abonnement persistant non partagé avec le même nom et identifiant client mais un sujet différent, un sélecteur de messages ou une valeur noLocal a été spécifié, et qu’aucun consommateur n’est déjà actif (c’est-à-dire non fermé) sur l’abonnement persistant, cela équivaut à se désinscrire (supprimer) l’ancien abonnement et en créer un nouveau.
Les abonnements persistants partagés et non partagés peuvent ne pas avoir le même nom ni la même identité client. Si un abonnement persistant partagé avec le même nom et identifiant client existe déjà, une JMSException est lancée.
Il n’y a pas de limite aux abonnements persistants et aux abonnements partagés non persistants portant le même nom et le même clientId. Un tel abonnement sera complètement séparé.
Cette méthode est la même que la méthode createDurableSubscriber correspondante, sauf qu’elle retourne un MessageConsumer au lieu d’un TopicSubscriber pour représenter le consommateur.
Paramètre: Thèmes - Abonnements à sujets non temporaires nom - Le nom utilisé pour identifier cet abonnement Lancer : InvalidDestinationException - Si un sujet invalide est spécifié. IllegalStateException - Si l’identifiant invité n’est pas défini JMSException - Si la session ne parvient pas à créer un abonnement persistant non partagé et MessageConsumer en raison d’une erreur interne Si un abonnement persistant non partagé avec le même nom et identifiant client existe déjà, et que le consommateur est déjà actif Si un abonnement persistant partagé avec le même nom et identifiant client existe déjà Depuis : JMS 2.0 IMessageConsumer CreateDurableConsumer (ITopic destination, nom de la chaîne, sélecteur de chaîne, bool noLocal) ;
où messageSelector est le sélecteur de messages ; Le drapeau noLocal est faux par défaut, et lorsqu’il est réglé sur true, il limite aux consommateurs de ne recevoir que des messages publiés par la même connexion qu’eux, ce qui ne s’applique qu’aux sujets, pas aux files d’attente. Le nom est l’identité unique du sujet d’abonnement, et ce paramètre doit être défini lorsque vous vous abonnez à un abonnement persistant.
Activemq .net doit référencer le téléchargement du package :La connexion hyperlientérée est visible.
Téléchargement complet du code source :
Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaît Répondre
|