本人最近在做一个移动项目的时候使用了gsoap开发soap这个协议,在使用的过程中遇见了不少问题和困惑。最后在找了N多网上的资料才得到解决。总结如下:
首先我以提问和回答的方式,希望能接受。
1,在soap协议中怎么实现多个服务同时运行的方式?
这个问题本人苦恼了很长的一段时间,最后发现是走进了以个误区。后来在网上找资料,但是网上的兄弟都没有提及这点,包含gsoap的文档中也没有提及到这点。后来结合CORBA的工作流程和soap协议的特点最后发现自己完全是弄错了,我应该是每个服务对应以个IP地址和端口号,这样就可以同时启动两个服务了。到这里可能有人会问,你为什么要这样啊?告诉你,因为如果两个服务中的接口的名字相同怎么区分了。呵呵,等你进行到gsoap开发的时候估计会遇见的。其实至于gsoap的并发服务代码网上到处都是,就是同时接受多客户端链接的代码。
2,在soap协议中怎么实现通知了?
这个问题是让我很长时间都没有搞清楚的问题。通知其实就是我们最正常的理解的主动告诉的意思。就是当客户端有消息要告诉服务器知道的一个流程。其实,soap协议中规定了几中通信的模式,一种是一问一答 ,二是,主动答。
当然我可能对通信方式说到比较简单,但是很直接通俗易懂啊!呵呵,其中通知就是用的主动的答的方式,也就是服务端开启以个线程不停的接受通知。而客户端有通知发送的时候,就发送到双方协商好的位置。有可能是直接发送到服务器的位置,有可能是将消息发送到另外的位置,而处理后再发送给服务器。呵呵。就这简单啊。具体的自己慢慢的去理解啊。
上面说的这两点其实就是soap中很难理解的两种方式,其他的细节方面的问题可以在网上可以查找到,比如怎么生成WSDL文件,怎么编辑WSDL文件。等等,如果是在搞不懂的话我们可以讨论讨论的呵呵。
写到这里有人可能就要问了为什么要提到tinyxml这个了,其实就是为了配合gsoap来完成一些组织形式,比如组织通知的时候,一定要用到xml的形式,因为gsoap中有个数据类型是_any但是他有是以char×的形式存在的。开始也是不理解,其实后来明白了,其实就是要组织成xml 形式的_any类型的。(这里在网上根本就找不到这方面的资料,如果实在还是不明白的可以联系我的)
我的QQ是35151226,邮件是min0073@163.com呵呵可以晚上联系的!