首页 > 其他分享 >服务契约(类型与响应方式)

服务契约(类型与响应方式)

时间:2022-11-09 17:31:57浏览次数:39  
标签:异步 string void 响应 proxy 契约 类型 操作 客户端


1、同步请求回复操作

对服务操作来说,同步请求回复消息交换是最普通的模式

服务契约(类型与响应方式)_服务器


2、异步访问服务操作

      请求-响应服务操作会令客户端阻塞直到服务操作执行结束,异步方式可以采用回调方式解决等待问题

      注意:服务端不知道客户端在使用异步编程,客户端的异步模式无需服务器参与操作

服务契约(类型与响应方式)_客户端_02


服务契约(类型与响应方式)_string_03

代码:


class   Program
{
static int c = 0;
static void Main( string [] args)
{
StockServiceClient proxy = new StockServiceClient();
IAsyncResult arGetPrice;
for ( int i = 0; i < 10; i++)
{
arGetPrice = proxy.BeginGetPrice( "msft" , GetPriceCallback, proxy);
InterLocker.Increment( ref c);
}
while (c > 0)
{
Thread.Sleep(1000);
Console.WriteLine( "Waiting... Calls outstanding:{0}" , c);
}
proxy.Close();
Console.WriteLine( "Done!" );
}

//Asynchronous callbacks for displaying results.
static void GetPriceCallback(IAsyncResult ar)
{
double d = ((StockServiceClient)ar.AsyncState).EndGetPrice(ar);
Interlocked.Decrement( ref c);
}

}


3、单向操作

     向服务器发送消息却不需要回应,只需要知道发送成功即可,​​[OperationContract(IsOneWay = ​​​​true​​​​)] 即可实现​

代码:


[ServiceContract]
public interface IStockService
{
[OperationContract(IsOneWay = true )]
void DoBigAnalysisFast( string ticker);

[OperationContract]
void DoBigAnalysisSlow( string ticker);
}



4、双工操作

       双工操作使得服务器向客户端发送消息成为可能,信道一旦建立,可以向任一方发送未经请求的消息

服务契约(类型与响应方式)_服务器_04


标签:异步,string,void,响应,proxy,契约,类型,操作,客户端
From: https://blog.51cto.com/u_15870687/5837406

相关文章