【发布时间】:2017-07-05 00:25:08
【问题描述】:
我正在关注这个示例http://doc.qt.io/qt-5/qtwebsockets-echoserver-example.html,但我不知道在建立连接后如何向客户端发送消息。
这似乎有效,但仅当它位于另一个类的函数内时。
void EchoServer::processTextMessage(QString message)
{
m_clients.at(0)->sendTextMessage("test");
}
我应该把代码放在哪里/如何让它工作?
e。 G。在 MainWindow 中按下按钮后如何向客户端发送消息?
这是有效的
void EchoServer::processTextMessage(QString message)
{
m_clients.at(0)->sendTextMessage("test");
}
这行不通
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_clients.at(0)->sendTextMessage("test");
}
不是这个
void MainWindow::myclicked()
{
m_clients.at(0)->sendTextMessage("test");
}
【问题讨论】:
-
确保您运行 2 个单独的进程,并且客户端应该打开 QWebsocket 并监听 *received 信号。 doc.qt.io/qt-5/qwebsocket.html 当我第一次尝试时,它开始为我使用 sendTextMessage 服务器和 textMessageReceived 处理客户端的信号。现在,它可以在我们自己的服务器的生产代码中使用,更不用说“乒乓”了。
-
示例代码工作正常,回显消息也返回给客户端。我不明白我将 sendTextMessage 放在何处以及如何将消息从服务器发送到客户端。 e. G。在 MainWindow 中按下按钮后如何向客户端发送消息?
-
您必须运行 2 个 QWebsocket,而不是一个。一个发送TextMessage,另一个监听它的信号textMessageReceived。他们之间有一个特殊的服务器,以便推送工作。
标签: c++ qt websocket server client