From ea9ffbd6d8ebcddbd8137b564b54c136115127e3 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Tue, 18 Jul 2023 11:10:43 +0800 Subject: [PATCH] Add test interface for ice data transport --- src/pc/peer_connection.cpp | 17 ++++++-- src/pc/peer_connection.h | 2 + src/rtc/rtc.cpp | 75 ++------------------------------- src/rtc/rtc.h | 10 +---- tests/peerconnection/answer.cpp | 11 +++++ 5 files changed, 33 insertions(+), 82 deletions(-) diff --git a/src/pc/peer_connection.cpp b/src/pc/peer_connection.cpp index a98cef7..6e11e2b 100644 --- a/src/pc/peer_connection.cpp +++ b/src/pc/peer_connection.cpp @@ -41,7 +41,10 @@ int PeerConnection::Init(std::string const &uri) { } }; - on_receive_ice_msg_ = [this](const char *data, size_t size) {}; + on_receive_ice_msg_ = [this](const char *data, size_t size) { + std::string msg(data, size); + LOG_INFO("Receive data: [{}]", msg.c_str()); + }; ws_transport_ = new WsTransport(on_receive_ws_msg_); if (ws_transport_) { @@ -83,7 +86,10 @@ int PeerConnection::Init(std::string const &uri, std::string const &id) { } }; - on_receive_ice_msg_ = [this](const char *data, size_t size) {}; + on_receive_ice_msg_ = [this](const char *data, size_t size) { + std::string msg(data, size); + LOG_INFO("Receive data: [{}]", msg.c_str()); + }; transport_id_ = id; @@ -110,4 +116,9 @@ int PeerConnection::Destroy() { return 0; } -SignalStatus PeerConnection::GetSignalStatus() { return signal_status_; } \ No newline at end of file +SignalStatus PeerConnection::GetSignalStatus() { return signal_status_; } + +int PeerConnection::SendData(const char *data, size_t size) { + ice_transport_->SendData(data, size); + return 0; +} \ No newline at end of file diff --git a/src/pc/peer_connection.h b/src/pc/peer_connection.h index 5a1fe65..43c9aeb 100644 --- a/src/pc/peer_connection.h +++ b/src/pc/peer_connection.h @@ -20,6 +20,8 @@ class PeerConnection { SignalStatus GetSignalStatus(); + int SendData(const char *data, size_t size); + private: WsTransport *ws_transport_ = nullptr; IceTransport *ice_transport_ = nullptr; diff --git a/src/rtc/rtc.cpp b/src/rtc/rtc.cpp index 5eec4b8..3800f50 100644 --- a/src/rtc/rtc.cpp +++ b/src/rtc/rtc.cpp @@ -1,44 +1,21 @@ #include "rtc.h" #include -#include #include "ice_agent.h" #include "log.h" +#include "nlohmann/json.hpp" #include "peer_connection.h" #include "ws_transport.h" using nlohmann::json; -static const std::vector siganl_status = {"Connecting", - "Connected", "Closed"}; - -class WsSender : public WsCore { - public: - WsSender() {} - ~WsSender() {} - - void OnReceiveMessage(const std::string &msg) { - LOG_INFO("Receive msg: {}", msg); - } -}; - -static WsSender *ws_client; static PeerConnection *peer_connection; int CreatePeerConnection(const char *uri) { peer_connection = new PeerConnection(); peer_connection->Init(uri); - // do { - // } while (SignalStatus::Connected != peer_connection->GetSignalStatus()); - - // LOG_INFO("Signal status: {}", - // siganl_status[peer_connection->GetSignalStatus()]); - - // peer_connection->CreateTransport(); - // peer_connection->CreateOffer(); - return 0; } @@ -46,56 +23,12 @@ int CreatePeerConnectionWithID(const char *uri, const char *id) { peer_connection = new PeerConnection(); peer_connection->Init(uri, id); - // do { - // } while (SignalStatus::Connected != peer_connection->GetSignalStatus()); - - // LOG_INFO("Signal status: {}", - // siganl_status[peer_connection->GetSignalStatus()]); - - // peer_connection->CreateTransport(id); - return 0; } -int rtc() { - ws_client = new WsSender(); +int SendData(const char *data, size_t size) { + peer_connection->SendData(data, size); return 0; } -int CreateWsClient(const char *uri) { - ws_client->Connect(uri); - - return 0; -} - -int WsSendMsg(const char *message) { - ws_client->Send(message); - - return 0; -} - -// ws_status GetWsStatus() -// { -// std::string ws_status = ws_client->GetStatus(); - -// if ("Connecting" == ws_status) -// { -// return ws_status::WS_CONNECTING; -// } -// else if ("Open" == ws_status) -// { -// return ws_status::WS_OPEN; -// } -// else if ("Failed" == ws_status) -// { -// return ws_status::WS_FAILED; -// } -// else if ("Closed" == ws_status) -// { -// return ws_status::WS_CLOSED; -// } -// else -// { -// return ws_status::WS_UNKNOWN; -// } -// } \ No newline at end of file +int rtc() { return 0; } \ No newline at end of file diff --git a/src/rtc/rtc.h b/src/rtc/rtc.h index 12a27e7..6fa36d0 100644 --- a/src/rtc/rtc.h +++ b/src/rtc/rtc.h @@ -11,18 +11,12 @@ int CreatePeerConnection(const char* uri); int CreatePeerConnectionWithID(const char* uri, const char* id); +int SendData(const char* data, size_t size); + int rtc(); -int ConnectToServer(const char* uri); - int RegisterPeer(); -int CreateWsClient(const char* uri); - -int WsSendMsg(const char* message); - -ws_status GetWsStatus(); - #ifdef __cplusplus } #endif diff --git a/tests/peerconnection/answer.cpp b/tests/peerconnection/answer.cpp index 7728b5f..8019860 100644 --- a/tests/peerconnection/answer.cpp +++ b/tests/peerconnection/answer.cpp @@ -5,6 +5,17 @@ int main(int argc, char **argv) { CreatePeerConnectionWithID("ws://localhost:9002", "000000"); + std::cout << "Finish CreatePeerConnectionWithID" << std::endl; + + std::string msg = "Hello world"; + + int i = 100; + while (i--) { + getchar(); + std::cout << "Send data: [" << msg << "]" << std::endl; + SendData(msg.data(), msg.size()); + } + getchar(); return 0; }