Я пытаюсь разрешить множественный одновременный доступ клиентов к веб-сервису, позволяя клиенту делать запрос и блокировать до тех пор, пока данные не будут доступны (я делаю это так, поскольку gsoap не поддерживает уведомления)Несколько одновременных клиентов с gsoap
Мой класс webservice скомпилирован с WITH_PURE_VIRTAL, что означает, что я не могу создавать его экземпляры, так как это абстрактный класс. Таким образом, я использую один класс, построенный мной, который наследуется от класса webservice и отвечает за управление запросами webservice и webclient.
Однако, когда мой класс занят обработкой существующего клиента, я не могу получить никаких других запросов.
Я прочитал (here), что вы должны начать нить с чем-то похожее на это:
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 вместо этого, служить вызов не делает что-нибудь.
Я также попытался запустить новую тему внутри своих методов вызова webservice, но как только поток запускается, веб-клиент получает пустой ответ.
Есть ли у кого-нибудь предложения?
Это правильный ответ. Мне просто нужно было реализовать метод абстрактной копии, который позволил мне обрабатывать несколько клиентов. Спасибо за вход! – Daniel