Doxygen with github
Loading...
Searching...
No Matches
ksWSServer.h
1/*
2 * Copyright (c) 2021-2025, Krzysztof Strehlau
3 *
4 * This file is a part of the ksIotFramework library.
5 * All licensing information can be found inside LICENSE.md file.
6 *
7 * https://github.com/cziter15/ksIotFrameworkLib/blob/master/LICENSE
8 */
9
10#pragma once
11
12#include <memory>
13#include <inttypes.h>
14#include <functional>
15#include <string_view>
16#include <WebSocketsServer.h>
17
18namespace ksf::misc
19{
25 typedef std::function<void(uint8_t client, std::string_view message)> ksWsServerMessageFunc_t;
26
30 class ksWSServer : public WebSocketsServerCore
31 {
32 protected:
33 std::unique_ptr<WEBSOCKETS_NETWORK_SERVER_CLASS> wsListener;
34 uint64_t requriedAuthToken{0};
35 ksWsServerMessageFunc_t onWebsocketTextMessage;
36
41 void handleNonWebsocketConnection(WSclient_t* client) override;
42
43 public:
48 ksWSServer(uint16_t port);
49
53 virtual ~ksWSServer();
54
65 uint64_t getRequiredAuthToken() const;
66
76 void setRequiredAuthToken(uint64_t authToken);
77
81 void begin();
82
86 void loop();
87
92 void setMessageHandler(ksWsServerMessageFunc_t func);
93 };
94}
A wrapper around WebSocketsServerCore that adds WebSocket authentication and enhanced message handlin...
Definition ksWSServer.h:31
std::unique_ptr< WEBSOCKETS_NETWORK_SERVER_CLASS > wsListener
WS server (listener).
Definition ksWSServer.h:33
virtual ~ksWSServer()
Destructs the server, releasing the resources.
Definition ksWSServer.cpp:21
void begin()
Starts the server.
Definition ksWSServer.cpp:26
void loop()
Handles WebSocket server logic.
Definition ksWSServer.cpp:58
ksWSServer(uint16_t port)
Prepares ksWebServer on specified port without actually starting it.
Definition ksWSServer.cpp:17
ksWsServerMessageFunc_t onWebsocketTextMessage
Callback function to receive messages.
Definition ksWSServer.h:35
uint64_t getRequiredAuthToken() const
Returns simple authentication token for WebSocket authentication process.
Definition ksWSServer.cpp:81
void setMessageHandler(ksWsServerMessageFunc_t func)
Installs a message handler to receive WebSocket text messages.
Definition ksWSServer.cpp:76
void handleNonWebsocketConnection(WSclient_t *client) override
Handler for non-WebSocket connections on websocket port.
Definition ksWSServer.cpp:91
void setRequiredAuthToken(uint64_t authToken)
Sets simple authtoken for WebSocket authentication.
Definition ksWSServer.cpp:86
uint64_t requriedAuthToken
WS auth token.
Definition ksWSServer.h:34