Real Name
This commit is contained in:
1 parent
94a31b7608
commit
0adf122d1d
553 files changed
+155034
No files matched your search
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* IXWebSocketHandshake.h
|
||||
* Author: Benjamin Sergeant
|
||||
* Copyright (c) 2019 Machine Zone, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "IXCancellationRequest.h"
|
||||
#include "IXSocket.h"
|
||||
#include "IXWebSocketHttpHeaders.h"
|
||||
#include "IXWebSocketInitResult.h"
|
||||
#include "IXWebSocketPerMessageDeflate.h"
|
||||
#include "IXWebSocketPerMessageDeflateOptions.h"
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace ix
|
||||
{
|
||||
class WebSocketHandshake
|
||||
{
|
||||
public:
|
||||
WebSocketHandshake(
|
||||
std::atomic<bool> &requestInitCancellation,
|
||||
std::unique_ptr<Socket> &_socket,
|
||||
WebSocketPerMessageDeflatePtr &perMessageDeflate,
|
||||
WebSocketPerMessageDeflateOptions &perMessageDeflateOptions,
|
||||
std::atomic<bool> &enablePerMessageDeflate);
|
||||
|
||||
WebSocketInitResult
|
||||
clientHandshake(const std::string &url,
|
||||
const WebSocketHttpHeaders &extraHeaders,
|
||||
const std::string &host,
|
||||
const std::string &path,
|
||||
int port,
|
||||
int timeoutSecs);
|
||||
|
||||
WebSocketInitResult serverHandshake(int timeoutSecs,
|
||||
bool enablePerMessageDeflate);
|
||||
|
||||
private:
|
||||
std::string genRandomString(const int len);
|
||||
|
||||
// Parse HTTP headers
|
||||
WebSocketInitResult sendErrorResponse(int code, const std::string &reason);
|
||||
|
||||
bool insensitiveStringCompare(const std::string &a, const std::string &b);
|
||||
|
||||
std::atomic<bool> &_requestInitCancellation;
|
||||
std::unique_ptr<Socket> &_socket;
|
||||
WebSocketPerMessageDeflatePtr &_perMessageDeflate;
|
||||
WebSocketPerMessageDeflateOptions &_perMessageDeflateOptions;
|
||||
std::atomic<bool> &_enablePerMessageDeflate;
|
||||
};
|
||||
} // namespace ix
|
||||
Reference in new issue
Block a user