Mivel a projektnek szüksége van bizonyos adatokra, hogy továbbítsák és fogadják, mivel az adatmennyiség viszonylag nagy, naponta körülbelül 3 millió adat
Eleinte http postot használtam adatküldéshez, de azt találtam, hogy túl lassú volt, és a küldési sebesség sokkal kisebb volt, mint a vételi sebesség.
Ezért, ha hosszú socketes kapcsolatot akarsz használni az adatok tolására és fogadására, akkor magad írd meg a socket szervert és klienst, az az időpazarlás, de lehet, hogy nem lesz jól
Végül az activemq-t az adatok tolására és fogadására használják
Először is, a gyártó kód a következő:
Fogyasztó, két modell létezik:
1: Egyszerű előfizetés, nincs szükség állandó "előfizetésre", vagyis csatlakozás közben üzeneteket fogadhatsz, és a csatlakozás előtt nem fogadhatod az üzeneteket, a "CreateConsumer" használatával 2: Állandó előfizetés, a csatlakozás után olyan adatokat kaphatsz, amelyeket korábban nem továbbítottak, a "CreateDurableConsumer" használatával
Linkek a CreateDurableConsumer bevezetéséhez:A hiperlink bejelentkezés látható.
Hozz létre egy nem megosztott, állandó előfizetést a megadott témában, ha az még nem létezik, és hozz létre egy fogyasztót ezen az állandó előfizetésen. Ez a módszer állandó előfizetést hoz létre üzenetválasztó használata nélkül, és a noLocal érték hamis. Az alkalmazás állandó előfizetést használ, és az alkalmazásnak minden témában közzétett üzenetet meg kell kapnia, beleértve azokat is, amelyeket akkor publikálnak, ha nincsenek aktív fogyasztók hozzárendelve. A JMS szolgáltató nyilvántartást vezet a tartós előfizetésről, és biztosítja, hogy az érintett kiadó összes üzenete meg nem maradjon, amíg el nem juttatják a fogyasztóhoz, és addig erősítik meg az állandó előfizetést, amíg lejárnak.
A tartós előfizetések folyamatosan halmozzák az üzeneteket, amíg azokat a leszokás módszerrel nem törlik.
Ez a módszer csak nem megosztott, állandó előfizetésekkel használható. A módszerrel létrehozott tartós előfizetések nem lesznek megosztva. Ez azt jelenti, hogy egyszerre csak egy aktív (azaz nem zárt) fogyasztó lehet az előfizetésben. A "fogyasztó" kifejezés itt a TopicSubscriber, MessageConsumer vagy JMSConsumer objektumot jelöli bármely kliensben.
A nem megosztott, állandó előfizetést egy kliens által megadott név és egy beállítandó kliens azonosító jelöli. Azoknak az alkalmazásoknak, amelyek ezután nem megosztott állandó előfizetésen szeretnének fogyasztókat létrehozni, ugyanazt az ügyfélazonosítót kell használniuk.
Ha már létezik egy megosztatlan, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval, ugyanaz a téma, üzenetválasztó és noLocal érték már meg van jelölve, és nincs aktív (azaz nem zárva) a tartós előfizetésen, akkor ez a módszer egy tartós előfizetést hoz létre a MessageConsumeren.
Ha már létezik egy nem megosztott, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval, és van egy fogyasztó a tartós előfizetésen már aktív (azaz nem zárva), akkor JMSException indul.
Ha már létezik egy nem megosztott, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval, de más tárgyal, egy üzenetválasztó vagy noLocal érték van megadva, és nincs aktív (azaz nem zárva) a tartós előfizetésen, akkor ez egyenértékű azzal, mintha a régi előfizetést törölnénk (visszavonnánk) és új előfizetést hoznunk létre.
A megosztott és nem megosztott állandó előfizetések nem feltétlenül ugyanazzal a nevükkel és kliens identitással rendelkeznek. Ha már létezik egy megosztott, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval, akkor JMSException indul.
Nincs korlát a tartós előfizetésekre és a nem állandó előfizetésekre ugyanazzal a névvel és clientId-vel. Egy ilyen előfizetés teljesen különálló lesz.
Ez a módszer ugyanaz, mint a megfelelő createDurableSubscriber módszer, kivéve, hogy a fogyasztót képviseli a TopicSubscriber helyett MessageConsumer-t.
Paraméter: Témák - Nem ideiglenes témairatok név – Az előfizetés azonosítására használt név Dobás: InvalidDestinationException – Ha egy érvénytelen téma van megadva. IllegalStateException – Ha a vendégazonosító nincs beállítva JMSException - Ha az ülés nem jön létre nem megosztott állandó előfizetés és MessageConsumer valami belső hiba miatt Ha már létezik egy nem megosztott, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval, és a fogyasztó már aktív Ha már létezik egy megosztott, állandó előfizetés ugyanazzal a névvel és kliens azonosítóval Azóta: JMS 2.0 IMessageConsumer CreateDurableConsumer(ITopic célállomás, string név, string selector, bool noLocal);
ahol messageSelector az üzenetválasztó; A noLocal zászló alapértelmezetten hamis, és ha igazra állítják, korlátozza a felhasználóknak, hogy csak ugyanazon kapcsolaton keresztül megjelent üzeneteket kapjanak, ami csak témákra vonatkozik, nem sorokra. A név az előfizetéses téma egyedi identitása, és ezt a paramétert be kell állítani, amikor állandó előfizetésre feliratkozol.
Az Activemq .net-nek hivatkoznia kell a csomag letöltésére:A hiperlink bejelentkezés látható.
Teljes forráskód letöltés:
Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlek Válasz
|