Skip to content

raisim::server::websocket ​

namespace

Classes ​

  • class FrameDecoder — Decodes what a client sends: masked frames whose binary messages may come in fragments, with control frames between them.
  • struct UpgradeRequest — What the server needs from a WebSocket upgrade request.

Enumerations ​

Opcode ​

#include <raisim/server/WebSocket.hpp>

cpp
enum Opcode : uint8_t
EnumeratorValue
kContinuation0x0
kText0x1
kBinary0x2
kClose0x8
kPing0x9
kPong0xA

Functions ​

sha1 ​

#include <raisim/server/WebSocket.hpp>

cpp
std::array<uint8_t, 20> sha1(std::string_view text)

base64 ​

#include <raisim/server/WebSocket.hpp>

cpp
std::string base64(const uint8_t *data, size_t size)

acceptKey ​

#include <raisim/server/WebSocket.hpp>

cpp
std::string acceptKey(std::string_view clientKey)

The Sec-WebSocket-Accept value that answers a client's Sec-WebSocket-Key.

parseUpgradeRequest ​

#include <raisim/server/WebSocket.hpp>

cpp
std::optional<UpgradeRequest> parseUpgradeRequest(std::string_view head)

Parses an HTTP request head that ends with an empty line. Returns nothing unless it is a GET request asking for a version 13 WebSocket upgrade with a 16-byte key.

upgradeResponse ​

#include <raisim/server/WebSocket.hpp>

cpp
std::string upgradeResponse(const UpgradeRequest &request)

refusalResponse ​

#include <raisim/server/WebSocket.hpp>

cpp
std::string refusalResponse(std::string_view status)

isDefaultViewerOrigin ​

#include <raisim/server/WebSocket.hpp>

cpp
bool isDefaultViewerOrigin(std::string_view origin)

Origins whose pages may connect by default: raisim.com and pages served from this computer.

frameHeader ​

#include <raisim/server/WebSocket.hpp>

cpp
size_t frameHeader(
    uint8_t opcode,
    uint64_t payloadBytes,
    uint8_t(&header)[kMaxFrameHeaderBytes])

Writes the header of a final, unmasked server frame and returns its length.

Variables ​

kMaxRequestHeadBytes ​

#include <raisim/server/WebSocket.hpp>

cpp
constexpr size_t kMaxRequestHeadBytes

The longest HTTP request head the server reads before it gives up on an upgrade.

kMaxFrameHeaderBytes ​

#include <raisim/server/WebSocket.hpp>

cpp
constexpr size_t kMaxFrameHeaderBytes

The longest server frame header.

RaiSim — physics for robotics and AI.