基于soap协议的开发模型(转)

来源:互联网 发布:mac翻墙工具 编辑:程序博客网 时间:2024/06/02 03:20

这里写图片描述

3.编写具体的SOAP消息处理代码
上图中的协议转换模块用于接收, 解析soap消息, 然后转换为内部约定好的消息结构。该模块主要有三个功能:
1, 接收SOAP消息
2, 处理SOAP消息
3, 解析SOAP消息并进行组装
下面是具体说明。
(1)接收SOAP消息

soap_init(&soap);//初始化soapm = soap_bind(&soap, IpAdr, Port, BACKLOG);//绑定IP和端口号while(!soap_valid_socket(m)) //循环直到服务套接字合法{    m = soap_bind(&soap, IpAdr, Port, BACKLOG);}......for(; ;){        s = soap_accept(&soap);//接收到soap消息        if(!soap_valid_socket(s))//对错误消息的处理        {           ......        }        //将接收到的soap消息放入队列工处理        EnQueue(data);}

(2)处理SOAP消息
该流程的伪代码如下:

“`
for(; ;) //用一个死循环来不停的处理soap消息
{
DeQueue(&data); //将soap消息从队列中取出来处理
….
soap_set_namespace(tsoap, namespaces);//设置命名空间
soap_server(tsoap);//具体处理SOAP消息的函数
soap_destroy(tsoap);//处理完成后销毁该SOAP消息
soap_end(tsop);//结束本次循环
}
(3)解析SOAP消息并进行组装
这一步需要我们实现soapTtub.h文件中的_ns1_CreateUser函数。
这个流程因为具体业务不同而不同,在此不再具体说明。
以上三个流程中用的函数均为我们利用wsdl文件生成的SOAP代码框架中已经封装好了的函数。

原创粉丝点击