Sdílet prostřednictvím


SdlChannelSink.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é se načtou 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, aby se vrátil nadpis zprávy klientovi. 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 objekt zprávy. Objekt Message, který implementuje IMessage rozhraní, se předává 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 provedení své práce. 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ž zpráva dosáhne na straně serveru, transportní jímka načte hlavičky a serializovanou zprávu z datového proudu a předá je prostřednictvím řetězu jímky, dokud se nedostanou k jímce formatteru. Jímka formátovače pak zprávu deserializuje a předá ji do vzdálené komunikace, kde je zpráva převedena na volání metody a je volán objekt serveru.

Platí pro