通过 websocket 发送 STOMP 帧

Sending a STOMP frame through websocket

本文关键字:STOMP 发送 websocket 通过      更新时间:2023-10-16

由于任何地方都没有webstomp(通过Websocket的STOMP(C++实现,所以我正在开发自己的。我已经设置了一个webstomp服务器,并且我已经确认它可以使用webstomp的javascript实现工作。

现在我依靠QT的websocket实现。我测试并使用常规网络套接字。所以现在是STOMP的实现。查看 STOMP 帧,我必须发送的第一帧可能是这样的:

CONNECT
login: <username>
passcode: <passcode>
^@

^@是空字符。我遇到的问题是,无论我做什么,我似乎都无法从服务器获得任何类型的响应。我尝试了不同的编码、不同的消息、不同的连接帧等。我想知道我是否做错了什么,或者我错过了什么。上述框架的示例如下所示:

void WebSTOMP::onConnected()
{
    if (m_debug)
        qDebug() << "WebSocket connected";
    connect(&m_webSocket, &QWebSocket::textMessageReceived,
            this, &EchoClient::onTextMessageReceived);
    std::string myMessage = "CONNECT nlogin: testnpasscode : testnn";
    m_webSocket.sendTextMessage(QString::fromUtf8(myMessage.c_str()));
}

然后我再也没有收到回复。

提前感谢=(

由于字符串的空字符终止符,在消息的长度上添加一个

解决了。对于将来:由于包含空字符终止符,必须手动指定长度。