1#ifndef YAZE_APP_NET_WEBSOCKET_INTERFACE_H_
2#define YAZE_APP_NET_WEBSOCKET_INTERFACE_H_
7#include "absl/status/status.h"
39 using CloseCallback = std::function<void(
int code,
const std::string& reason)>;
49 virtual absl::Status
Connect(
const std::string& url) = 0;
56 virtual absl::Status
Send(
const std::string& message) = 0;
64 virtual absl::Status
SendBinary(
const uint8_t* data,
size_t length) {
66 return absl::UnimplementedError(
"Binary messages not implemented");
75 virtual absl::Status
Close(
int code = 1000,
76 const std::string& reason =
"") = 0;
Abstract interface for WebSocket client implementations.
OpenCallback open_callback_
virtual absl::Status Close(int code=1000, const std::string &reason="")=0
Close the WebSocket connection.
virtual void OnClose(CloseCallback callback)=0
Set callback for connection close events.
virtual void OnBinaryMessage(BinaryMessageCallback callback)
Set callback for binary message events.
virtual absl::Status SendBinary(const uint8_t *data, size_t length)
Send a binary message.
virtual void OnError(ErrorCallback callback)=0
Set callback for error events.
CloseCallback close_callback_
virtual ~IWebSocket()=default
virtual std::string GetUrl() const
Get the WebSocket URL.
virtual void SetAutoReconnect(bool enable, int delay_seconds=5)
Set automatic reconnection.
virtual absl::Status Send(const std::string &message)=0
Send a text message.
std::function< void(const std::string &message)> MessageCallback
virtual void OnMessage(MessageCallback callback)=0
Set callback for text message events.
virtual WebSocketState GetState() const =0
Get the current connection state.
virtual absl::Status Connect(const std::string &url)=0
Connect to a WebSocket server.
ErrorCallback error_callback_
int reconnect_delay_seconds_
virtual void OnOpen(OpenCallback callback)=0
Set callback for connection open events.
virtual bool IsConnected() const
Check if the WebSocket is connected.
std::function< void(const std::string &error)> ErrorCallback
std::function< void(const uint8_t *data, size_t length)> BinaryMessageCallback
BinaryMessageCallback binary_message_callback_
MessageCallback message_callback_
std::function< void()> OpenCallback
std::function< void(int code, const std::string &reason)> CloseCallback
WebSocketState
WebSocket connection states.