Qt WebSockets,如何向客户端发送消息

时间:2017-07-05 00:25:09

标签: c++ qt websocket server client

我关注此示例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");

}

1 个答案:

答案 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");
        }

}