Создайте новый процесс клиентского приложения для новых входящих подключений от QWebSocketServer. Можем ли мы создать несколько qapplication в нескольких процессах?

Я создал приложение на основе opengl, имеющее HTML-интерфейс и логику C++, подключенное через QWebChannel.

Для настольных версий (windows/linux) я создал QWebEngineView для отображения пользовательского интерфейса HTML. Мне удалось успешно создавать, запускать и обмениваться данными между html и C++ приложением.

Теперь я хочу создать приложение на основе браузера, используя тот же пользовательский интерфейс HTML и логику C++. Я могу добиться этого с помощью классов QWebSockerServer, qTcpSocket, QWebChannelAbstractTransport.

Я хочу создавать Qt мое приложение в новом процессе всякий раз, когда подключается клиент. Новые сокеты TCP создаются для каждого соединения. Также мне нужно создать QWebChannel для каждого процесса, который мне нужен в моем приложении.

JsToCppProxy webRelayMsgObj;

QWebChannel webChannel;
webChannel.registerObject("JsToCppProxy", &webRelayMsgObj);**

WebSocketTransport* pSocketTransport = new WebSocketTransport(m_server->nextPendingConnection());

QObject::connect(this, (void(WebSocketServer::*)(QWebChannelAbstractTransport*))&WebSocketServer::clientConnected,
        &m_WebChannel, &QWebChannel::connectTo);

emit clientConnected(pSocketTransport);

WebSocketTransport является производным от QWebChannelAbstractTransport. Я взял его из одного из примеров qt.

Вопрос:

  1. Я новичок в программировании сокетов. Выше фрагмент кода я должен сделать в новом процессе Qt. Но экземпляр m_server находится в другом процессе Qt. Могу ли я создать WebSocketTransport в одном процессе и получить доступ к нему в другом процессе Qt?
  2. QServer находится в одном процессе (у которого есть qapplication), и мое приложение также имеет qapplication. Можно ли создавать разные qapplications в разных процессах?

0 ответов

Другие вопросы по тегам