Asynchronous PHP SOAP server send Ack message before response?


#1

I am not certain how to do this. The specs for the SOAP service I am writing says it needs to send back an ACK even before it responds with the requested response to the request.

How is this done in PHP Zend-SOAP? I have seen no examples of how to do this.


#2

PHP's SOAP extension takes care of that, so you don't need to do everything yourself.


#3

It does not send the specific ACK message. Besides, I'm using the Zend SOAP extension.


#4

Isn't ACK part of the TCP handshake?


#5

From the specifications:

5.4 Acknowledgement Message 

One acknowledgement message is sent by Partner to Vendor for every SubInv message request. 
A single acknowledgement message is also sent by Vendor to the Partner from every ReqInv message response.

5.4.1 HTTP Header 
Tag             Type                    Usage           Description 
Accept          Content-Types that      Required        Must be "text/XML"
                are acceptable for 
                the response   
Accept-Charset  Character sets that     Required        Must be "UTF-8"
                are acceptable  
Accept-Encoding Acceptable encodings    Required        Must be 'compress. gzip'
Date            The date and time       Required        Current date/time
                that the message was 
                sent

This doesn't look like typical TCP ACK.

This is a sample Acknowledgement message response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <ProcurementAddRs xmlns="http://www.cieca.com/BMS">
      <RqUID>f11958c8-3fde-42ca-bd94-94fdfca316ef</RqUID>
      <PartnerKey>46dba062-2105-4851-831f-a1d364741329</PartnerKey>
      <ApplicationStatus>
        <ApplicationStatusCode>Accept</ApplicationStatusCode>
      </ApplicationStatus>
    </ProcurementAddRs>
  </soap:Body>
</soap:Envelope>

#6

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.