Sdílet prostřednictvím


BinaryServerFormatterSink.ProcessMessage Metoda

Definice

Vyžádá si zpracování zpráv z aktuální jímky.

public:
 virtual System::Runtime::Remoting::Channels::ServerProcessing ProcessMessage(System::Runtime::Remoting::Channels::IServerChannelSinkStack ^ sinkStack, System::Runtime::Remoting::Messaging::IMessage ^ requestMsg, System::Runtime::Remoting::Channels::ITransportHeaders ^ requestHeaders, System::IO::Stream ^ requestStream, [Runtime::InteropServices::Out] System::Runtime::Remoting::Messaging::IMessage ^ % responseMsg, [Runtime::InteropServices::Out] System::Runtime::Remoting::Channels::ITransportHeaders ^ % responseHeaders, [Runtime::InteropServices::Out] System::IO::Stream ^ % responseStream);
public System.Runtime.Remoting.Channels.ServerProcessing ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, System.Runtime.Remoting.Messaging.IMessage requestMsg, System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, System.IO.Stream requestStream, out System.Runtime.Remoting.Messaging.IMessage responseMsg, out System.Runtime.Remoting.Channels.ITransportHeaders responseHeaders, out System.IO.Stream responseStream);
abstract member ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
override this.ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
Public Function ProcessMessage (sinkStack As IServerChannelSinkStack, requestMsg As IMessage, requestHeaders As ITransportHeaders, requestStream As Stream, ByRef responseMsg As IMessage, ByRef responseHeaders As ITransportHeaders, ByRef responseStream As Stream) As ServerProcessing

Parametry

sinkStack
IServerChannelSinkStack

Zásobník jímek kanálů, které volal aktuální jímku.

requestMsg
IMessage

Zpráva, která obsahuje požadavek.

requestHeaders
ITransportHeaders

Hlavičky, které jsou načteny z příchozí zprávy od klienta.

requestStream
Stream

Datový proud, který je potřeba zpracovat a předat do jímky deserializace.

responseMsg
IMessage

Když tato metoda vrátí, obsahuje IMessage zprávu, která obsahuje zprávu odpovědi. Tento parametr se předává neinicializovaný.

responseHeaders
ITransportHeaders

Když tato metoda vrátí, obsahuje ITransportHeaders hlavičky, které se mají přidat do návratové zprávy, která směřuje do klienta. Tento parametr se předává neinicializovaný.

responseStream
Stream

Když se tato metoda vrátí, obsahuje Stream objekt, který směřuje do jímky přenosu. Tento parametr se předává neinicializovaný.

Návraty

Hodnota ServerProcessing stavu, která poskytuje informace o způsobu zpracování zprávy.

Implementuje

Poznámky

Úkolem proxy serveru je převést volání metody, které je vyvoláno na zprávu. Zpráva, která implementuje IMessage rozhraní, se předá z konce klienta na konec serveru vyvoláním ProcessMessage objektů jímky zpráv. Jímky zpráv jsou zřetěděné, což znamená, že každá jímka zpráv je zodpovědná za volání ProcessMessage další jímky zpráv po dokončení práce aktuální jímky zpráv. Například jímka zpráv související se synchronizací může způsobit získání nebo uvolnění zámku a delegování na podřízenou jímku zpráv.

Když jímka kanálu formatteru obdrží zprávu, kterou je potřeba odeslat přes kanál, zavolá SyncProcessMessagea předá zprávu jako parametr. Jímka formátovače pak vytvoří pole hlaviček přenosu a zavolá GetRequestStream jímku formatteru. Toto volání se přesměruje v řetězu jímky a každá jímka může vytvořit datový proud požadavků, který se předá zpět do jímky formatteru. Jakmile se toto volání vrátí, zpráva se serializuje, ProcessMessage volá se v prvním řetězu v řetězu jímky a zpráva se předá jímce kanálu.

Jakmile jímky kanálu dostanou zprávu, můžou zapisovat data do streamu, přidávat záhlaví do pole hlaviček a přidávat se do zásobníku jímky před přesměrováním volání do další jímky. Když volání dosáhne transportní jímky na konci řetězce, transportní jímka odešle hlavičky a serializovanou zprávu přes kanál na server, kde je proces obrácen.

Když se zpráva dostane na stranu serveru, transportní jímka načte hlavičky a serializovanou zprávu z datového proudu a předá je přes řetěz jímky, dokud nedojde k jímce formatteru. Jímka formátovače pak zprávu deserializuje a předá ji do infrastruktury vzdálené komunikace. Infrastruktura vzdálené komunikace pak změní zprávu na volání metody a zavolá objekt serveru.

Platí pro