mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
![Guilherme Gonçalves](/assets/img/avatar_default.png)
This adds support for WebSocket subprotocols to WebSocket DOM objects, with some necessary plumbing to LibWebSocket and its clients. See the associated pull request for how this was tested.
36 lines
1,014 B
C++
36 lines
1,014 B
C++
/*
|
|
* Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
|
|
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/WebSockets/WebSocket.h>
|
|
#include <LibWebSocket/WebSocket.h>
|
|
|
|
namespace Ladybird {
|
|
|
|
class WebSocketLadybird
|
|
: public Web::WebSockets::WebSocketClientSocket
|
|
, public Weakable<WebSocketLadybird> {
|
|
public:
|
|
static NonnullRefPtr<WebSocketLadybird> create(NonnullRefPtr<WebSocket::WebSocket>);
|
|
|
|
virtual ~WebSocketLadybird() override;
|
|
|
|
virtual Web::WebSockets::WebSocket::ReadyState ready_state() override;
|
|
virtual DeprecatedString subprotocol_in_use() override;
|
|
virtual void send(ByteBuffer binary_or_text_message, bool is_text) override;
|
|
virtual void send(StringView message) override;
|
|
virtual void close(u16 code, DeprecatedString reason) override;
|
|
|
|
private:
|
|
explicit WebSocketLadybird(NonnullRefPtr<WebSocket::WebSocket>);
|
|
|
|
NonnullRefPtr<WebSocket::WebSocket> m_websocket;
|
|
};
|
|
|
|
}
|