910e62b5创建于 1月15日历史提交
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "net/test/embedded_test_server/websocket_echo_handler.h"

#include <memory>

#include "base/memory/scoped_refptr.h"
#include "net/test/embedded_test_server/websocket_connection.h"
#include "net/test/embedded_test_server/websocket_handler.h"

namespace net::test_server {

WebSocketEchoHandler::WebSocketEchoHandler(
    scoped_refptr<WebSocketConnection> connection)
    : WebSocketHandler(std::move(connection)) {}

void WebSocketEchoHandler::OnHandshake(const HttpRequest& request) {
  CHECK(connection());
  connection()->SetResponseHeader("X-Custom-Header", "WebSocketEcho");
}

void WebSocketEchoHandler::OnTextMessage(std::string_view message) {
  CHECK(connection());
  connection()->SendTextMessage(message);
}

void WebSocketEchoHandler::OnBinaryMessage(base::span<const uint8_t> message) {
  CHECK(connection());
  connection()->SendBinaryMessage(message);
}

}  // namespace net::test_server