首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

WebService怎么异步返回

2012-06-15 
WebService如何异步返回?我现在有这样一个架构,一个异步的IOCP Server(C++)作为服务器,然后一个WebService

WebService如何异步返回?
我现在有这样一个架构,一个异步的IOCP Server(C++)作为服务器,然后一个WebService(C#),在Web客户端调用WebService提供的接口后,需要通过Socket接口从IOCPServer读取数据然后返回给Web客户端,问题是IOCP Server是异步的,那么WebService能不能做到在收到IOCP Server的返回后在将收到的数据发送给Web客户端呢?如果可以如何实现?不太明白WebService和Web编程请各位大侠指教???

[解决办法]
参考

C# code
    messageWebServers.findMessageInfoCompleted += new findMessageInfoCompletedEventHandler(messageWS_findMessageCompleted);                messageWS.findMessageAsync(query, currPage, pageSize);   void messageWebServers_findMessageInfoCompleted(object sender, findMessageCompletedEventArgs e)        {            if (e.Error == null)            {                if (e.Result != null)                {                    if (e.Result.data != null)                    {}}}
[解决办法]
webservice从iocpserver获取数据时,可以使用AutoResetEvent.WaitOne进行阻塞,当socket接收到数据后,执行AutoResetEvent.Set,然后返回结果。
或者webservice从iocpserver接收数据时,不采用异步接收,顺序执行connect、send、receive,直到返回socket接收的数据后返回结果。
也可以为web客户端编写插件或者使用silverlight直接与iocpserver通信,越过webservice。

热点排行