Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Existují tři kategorie objektů kanálu: kanály, naslouchací procesy kanálů a továrny kanálů. Kanály jsou rozhraní mezi aplikací a zásobníkem kanálů. Naslouchací procesy kanálu zodpovídají za vytváření kanálů na straně příjmu (nebo naslouchání), obvykle v reakci na novou příchozí zprávu nebo připojení. Objekty pro vytváření kanálů na straně odesílání zodpovídají za zahájení komunikace s koncovým bodem.
Naslouchací procesy kanálu zodpovídají za vytváření kanálů a příjem zpráv z níže uvedené vrstvy nebo ze sítě. Přijaté zprávy se doručují do výše uvedené vrstvy pomocí kanálu vytvořeného naslouchacím procesem kanálu.
Následující diagram znázorňuje proces příjmu zpráv a jejich doručování do výše uvedené vrstvy.
Naslouchací proces kanálu přijímá zprávy a doručuje do vrstvy nad kanály.
Proces může být koncepčně modelován jako fronta uvnitř každého kanálu, i když implementace nemusí ve skutečnosti používat frontu. Naslouchací proces kanálu zodpovídá za příjem zpráv z vrstvy pod nebo ze sítě a jejich umístění do fronty. Kanál zodpovídá za získávání zpráv z fronty a jejich předání do výše uvedené vrstvy, když tato vrstva požádá o zprávu, například voláním Receive
do kanálu.
WCF poskytuje pomocné rutiny základní třídy pro tento proces. Diagram pomocných tříd kanálu probíraných v tomto článku najdete v tématu Přehled modelu kanálu.
Třída CommunicationObject implementuje a vynucuje ICommunicationObject stavový počítač popsaný v kroku 2 vývoje kanálů.
Třída ChannelManagerBase implementuje CommunicationObject a poskytuje jednotnou základní třídu pro ChannelFactoryBase a ChannelListenerBase. Třída ChannelManagerBase funguje ve spojení s ChannelBase, což je základní třída, která implementuje IChannel.
Třída ChannelFactoryBase implementuje ChannelManagerBase a IChannelFactory konsoliduje CreateChannel
přetížení do jedné OnCreateChannel
abstraktní metody.
Třída ChannelListenerBase implementuje IChannelListener. Stará se o základní správu stavu.
Následující diskuze vychází z ukázky Transport: UDP .
Ukázka UdpChannelListener
implementuje odvození z ChannelListenerBase třídy. K příjmu datagramů používá jeden soket UDP. Metoda OnOpen
přijímá data pomocí soketu UDP v asynchronní smyčce. Data se pak převedou na zprávy pomocí systému kódování zpráv:
message = UdpConstants.MessageEncoder.ReadMessage(
new ArraySegment<byte>(buffer, 0, count),
bufferManager
);
Vzhledem k tomu, že stejný kanál datagramu představuje zprávy, které přicházejí z řady zdrojů, jedná se UdpChannelListener
o jeden naslouchací proces. K tomuto naslouchacímu procesu je současně přidruženo maximálně jedno aktivní IChannel . Ukázka vygeneruje další pouze v případě, že se následně odstraní kanál vrácený metodou AcceptChannel . Když se zpráva přijme, začtou se do tohoto jednoúčelového kanálu.
Třída UdpInputChannel
implementuje IInputChannel. Skládá se z fronty příchozích zpráv naplněných soketem UdpChannelListener
. Tyto zprávy jsou vyřazeny z fronty metodou Receive .
Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Zjistěte, jak psát kód v aplikacích .NET pomocí služby Azure Service Bus pro komunikaci, která dokáže zvládnout vysokou poptávku, malou šířku pásma a selhání hardwaru.