簡體   English   中英

多個同時使用gsoap的客戶端

[英]Multiple simultaneous clients with gsoap

我試圖使多個客戶端同時訪問Web服務,使客戶端發出請求並阻塞直到數據可用(我這樣做是因為gsoap不支持通知)

我的Web服務類是使用WITH_PURE_VIRTAL編譯的,這意味着我無法創建它的實例,因為它是一個抽象類。 因此,我使用一個由我構建的類,該類繼承自webservice類,並負責管理webservice和webclient請求。

但是,當我的班級忙於處理現有的客戶端時,我似乎無法收到任何其他請求。

我讀過( 這里 ),您應該啟動一個與此類似的線程:

   soap_serve((struct soap*)soap);
   soap_destroy((struct soap*)soap); // dealloc C++ data
   soap_end((struct soap*)soap); // dealloc data and clean up
   soap_done((struct soap*)soap); // detach soap struct
   free(soap); 

但是,當我修改該代碼以改為調用Webservice類時,serve調用不會執行任何操作。

我還嘗試在webservice調用方法中啟動新線程,但是一旦線程啟動,webclient就會收到一個空響應。

有沒有人有什么建議?

如果您看一下我對這個問題的回答,您會看到一個非常基本的C ++線程gSoap服務器。 我認為您可能缺少的是需要復制服務類,在我的代碼行tc = c.copy() ; // make a safe copy tc = c.copy() ; // make a safe copy ,從而tc = c.copy() ; // make a safe copy包含gSoap上下文的gSoap服務實例; 就是將此副本傳遞到新線程中,以便新線程可以在主線程等待另一個請求發出時響應該請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM