我关注此示例http://doc.qt.io/qt-5/qtwebsockets-echoserver-example.html,但我无法弄清楚如何在建立连接后向客户端发送消息。
这似乎有效,但只有当它在另一个类的函数中时才会起作用。
void EchoServer::processTextMessage(QString message)
{
m_clients.at(0)->sendTextMessage("test");
}
我应该在哪里/如何使用代码使其运行?
即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");
}
答案 0 :(得分:0)
我得到了它的工作。这是代码:
QWebSocket *messageSocket;
void EchoServer::onNewConnection()
{
QWebSocket *pSocket = m_pWebSocketServer->nextPendingConnection();
connect(pSocket, &QWebSocket::textMessageReceived, this, &EchoServer::processTextMessage);
connect(pSocket, &QWebSocket::disconnected, this, &EchoServer::socketDisconnected);
m_clients << pSocket;
messageSocket=pSocket;
}
void MainWindow::myclicked()
{
if (messageSocket)
{
messageSocket->sendTextMessage("test");
}
}