【发布时间】:2015-11-05 04:28:35
【问题描述】:
我正在尝试通过使用 C++ 连接 echo.websocket.org 来使用安全 websocket。它在 https://www.websocket.org/echo.html 的 javascript 中工作
我的解决方案是使用 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 例外”的更多信息。并不是说我在该特定领域具有专业知识,但当我看到“我的车钥匙不起作用”类型的问题时,我可以识别它。比如,它是不是合适的车?
-
感谢您的澄清。无论如何,我找到了解决方案。这是github.com/pocoproject/poco/tree/develop/NetSSL_OpenSSL/… 中的一个测试套件,但另一个问题是我无法弄清楚它是如何工作的。比如我觉得pem文件是用来做认证的,但是不知道怎么做。
标签: c++ wss poco-libraries