diff --git a/etc/examples/nodes/webrtc.conf b/etc/examples/nodes/webrtc.conf index 824e0a048..441ed41a0 100644 --- a/etc/examples/nodes/webrtc.conf +++ b/etc/examples/nodes/webrtc.conf @@ -8,7 +8,7 @@ nodes = { session = "my-session-name" # Address to the websocket signaling server - server = "wss://villas.k8s.eonerc.rwth-aachen.de/ws/signaling" + server = "https://villas.k8s.eonerc.rwth-aachen.de/ws/signaling" # Limit the number of times a channel will retransmit data if not successfully delivered. # This value may be clamped if it exceeds the maximum value supported. diff --git a/lib/nodes/webrtc.cpp b/lib/nodes/webrtc.cpp index b679291bb..64510e4ac 100644 --- a/lib/nodes/webrtc.cpp +++ b/lib/nodes/webrtc.cpp @@ -25,7 +25,7 @@ static villas::node::Web *web; WebRTCNode::WebRTCNode(const std::string &name) : Node(name), - server("wss://villas.k8s.eonerc.rwth-aachen.de/ws/signaling"), + server("https://villas.k8s.eonerc.rwth-aachen.de/ws/signaling"), wait_seconds(0), format(nullptr), queue({}), @@ -153,7 +153,7 @@ int WebRTCNode::prepare() if (ret < 0) // TODO log return; - this->logger->debug("onMessage(rtc::binary) callback finished pushing {} samples", ret); + this->logger->trace("onMessage(rtc::binary) callback finished pushing {} samples", ret); }); return 0; diff --git a/lib/nodes/webrtc/peer_connection.cpp b/lib/nodes/webrtc/peer_connection.cpp index 1c91ce955..cd9293ef7 100644 --- a/lib/nodes/webrtc/peer_connection.cpp +++ b/lib/nodes/webrtc/peer_connection.cpp @@ -41,9 +41,19 @@ namespace rtc { PeerConnection::PeerConnection(const std::string &server, const std::string &session, rtc::Configuration cfg, Web *w, rtc::DataChannelInit d) : web(w), + extraServers({}), dataChannelInit(d), defaultConfig(cfg), - logger(logging.get("webrtc:pc")) + conn(nullptr), + chan(nullptr), + logger(logging.get("webrtc:pc")), + stopStartup(false), + warnNotConnected(false), + standby(true), + first(false), + firstID(INT_MAX), + secondID(INT_MAX), + onMessageCallback(nullptr) { client = std::make_shared(server, session, web); client->onConnected([this](){ this->onSignalingConnected(); }); diff --git a/lib/nodes/webrtc/signaling_client.cpp b/lib/nodes/webrtc/signaling_client.cpp index 5a10ee092..b6a299fd7 100644 --- a/lib/nodes/webrtc/signaling_client.cpp +++ b/lib/nodes/webrtc/signaling_client.cpp @@ -120,6 +120,8 @@ int SignalingClient::protocolCallback(struct lws *wsi, enum lws_callback_reasons buffer.append((char *) in, len); if (lws_is_final_fragment(wsi)) { + logger->trace("Received signaling message: {:.{}}", buffer.data(), buffer.size()); + auto *json = buffer.decode(); if (json == nullptr) { logger->error("Failed to decode JSON"); @@ -194,15 +196,17 @@ int SignalingClient::writable() return 0; } - char buf[LWS_PRE + 1024]; - auto len = json_dumpb(jsonMsg, buf + LWS_PRE, 1024, JSON_INDENT(2)); + char buf[LWS_PRE + 4096]; + auto len = json_dumpb(jsonMsg, buf + LWS_PRE, 4096, JSON_INDENT(2)); + if (len > sizeof(buf) - LWS_PRE) + return -1; + + logger->trace("Sending signaling message: {:.{}}", buf + LWS_PRE, len); auto ret = lws_write(wsi, (unsigned char *) buf + LWS_PRE, len, LWS_WRITE_TEXT); if (ret < 0) return ret; - logger->debug("Signaling message sent: {:.{}}", buf + LWS_PRE, len); - // Reschedule callback if there are more messages to be send if (!outgoingMessages.empty()) lws_callback_on_writable(wsi); diff --git a/web/webrtc.html b/web/webrtc.html index beeb1c46d..9bb75254e 100644 --- a/web/webrtc.html +++ b/web/webrtc.html @@ -98,7 +98,7 @@ var dc = null; // RTCDataChannel for the local (sender) var sc = null; // Signaling Client - var server = 'wss://villas.k8s.eonerc.rwth-aachen.de/ws/signaling'; + var server = 'https://villas.k8s.eonerc.rwth-aachen.de/ws/signaling'; var sessionName = 'my-session-name'; var iceUsername = 'villas'; var icePassword = 'villas';