Doxygen with github
Loading...
Searching...
No Matches
ksWSServer.h
1/*
2 * Copyright (c) 2021-2023, 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 <WebSocketsServer.h>
13#include <functional>
14#include <string_view>
15
16namespace ksf::misc
17{
23 typedef std::function<void(uint8_t client, std::string_view message)> ksWsServerMessageFunc_t;
24
28 class ksWSServer : public WebSocketsServerCore
29 {
30 protected:
31 std::unique_ptr<WEBSOCKETS_NETWORK_SERVER_CLASS> wsListener;
32 uint64_t requriedAuthToken{0};
33 ksWsServerMessageFunc_t onWebsocketTextMessage;
34
39 void handleNonWebsocketConnection(WSclient_t* client) override;
40
41 public:
46 ksWSServer(uint16_t port);
47
58 uint64_t getRequiredAuthToken() const;
59
69 void setRequiredAuthToken(uint64_t authToken);
70
74 void begin();
75
79 void loop();
80
85 void setMessageHandler(ksWsServerMessageFunc_t func);
86
90 virtual ~ksWSServer();
91 };
92}
Wrapper around WebSocketsServerCore that adds WebSocket authentication and better message handling.
Definition ksWSServer.h:29
std::unique_ptr< WEBSOCKETS_NETWORK_SERVER_CLASS > wsListener
WS server (listener).
Definition ksWSServer.h:31
virtual ~ksWSServer()
Destructs the server, releasing the resources.
Definition ksWSServer.cpp:22
void begin()
Starts the server.
Definition ksWSServer.cpp:27
void loop()
Handles WebSocket server logic.
Definition ksWSServer.cpp:59
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:33
uint64_t getRequiredAuthToken() const
Returns simple authentication token for WebSocket authentication process.
Definition ksWSServer.cpp:82
void setMessageHandler(ksWsServerMessageFunc_t func)
Installs a message handler to receive WebSocket text messages.
Definition ksWSServer.cpp:77
void handleNonWebsocketConnection(WSclient_t *client) override
Handler for non-WebSocket connections on websocket port.
Definition ksWSServer.cpp:92
void setRequiredAuthToken(uint64_t authToken)
Sets simple authtoken for WebSocket authentication.
Definition ksWSServer.cpp:87
uint64_t requriedAuthToken
WS auth token.
Definition ksWSServer.h:32