我想通过使用C++连接echo.websocket.org来使用安全websocket。它在javascript中工作https://www.websocket.org/echo.html如何在C++中使用Poco连接安全websocket
我的解决方案是使用Poco库,我的代码如下所示。
Poco::Net::initializeSSL();
Poco::Net::Context context(Poco::Net::Context::CLIENT_USE, "", "", "", Poco::Net::Context::VERIFY_RELAXED, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
Poco::Net::HTTPSClientSession Client("echo.websocket.org", 443, &context);
//SSL Exception on above line
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, "/?encoding=text", Poco::Net::HTTPMessage::HTTP_1_1);
request.set("origin", "https://www.websocket.org");
Poco::Net::HTTPResponse response;
try
{
Poco::Net::WebSocket webSocket(Client, request, response);
std::string str = "Hello!";
char receiveBuff[256];
int len = webSocket.sendFrame(str.data(), str.size(), Poco::Net::WebSocket::FRAME_TEXT);
std::cout << "Sent bytes " << len << std::endl;
int flags = 0;
int rlen = webSocket.receiveFrame(receiveBuff, 256, flags);
std::cout << "Received bytes " << rlen << std::endl;
std::cout << receiveBuff << std::endl;
webSocket.close();
}
catch (std::exception &e)
{
std::cout << "Exception " << e.what();
}
但我用此代码获得SSL异常。有人可以帮我吗?谢谢
为什么不一样,提供有关“SSL例外”一些更多的信息。并不是说我在那个特定领域拥有专业知识,但是当我看到它时,我可以认识到类型“我的车钥匙不起作用”的问题。比如,它是不是正确的汽车? –
感谢您的澄清。 无论如何,我找到了一个解决方案。这是一个测试套件在https://github.com/pocoproject/poco/tree/develop/NetSSL_OpenSSL/testsuite 但另一个问题是,我无法弄清楚它是如何工作的。 例如,我认为pem文件用于认证,但我不知道如何去做。 –