У меня есть рабочий код, в котором два одноранговых узла подключаются через ретранслятор (coturn), и все кажется прекрасным по сравнению с псевдо-tcp. Я успешно проверил обмен сообщениями с nice_agent_attach_recv()
и nice_agent_get_io_stream()
.«Поддержка TLS недоступна» при создании GTlsClientConnection с libnice
Но когда я пытаюсь создать GTlsClientConnection
я вернусь: 0:TLS support is not available
Вот некоторые частичный код:
if(!nice_agent_set_relay_info(agent, stream_id,
NICE_COMPONENT_TYPE_RTP,
"my.coturn.server",
5349, //tls-listener-port (I also tried the non tls port: 3478)
username.c_str(),
password.c_str(),
NICE_RELAY_TYPE_TURN_TCP))
{
printf("error setting up relay info\n");
}
...
//after state has changed to NICE_COMPONENT_STATE_READY
...
io_stream = nice_agent_get_io_stream (agent, stream_id, component_id);
input = g_io_stream_get_input_stream (G_IO_STREAM (io_stream));
output = g_io_stream_get_output_stream (G_IO_STREAM (io_stream));
GIOStream* tlsConnection = g_tls_client_connection_new
(G_IO_STREAM (io_stream), NULL, &error);
/////////////////////////
/// error == 0 (TLS support is not available)
Я новичок в libnice и бойкий. Так что, возможно, я пропустил что-то основное.
интересный. Таким образом, он все равно будет компилироваться и связываться, но не сможет создать поддержку TLS? Я попробую. – mateuscb
Классы Tls в Gio просто полагаются на общий интерфейс, но не содержат никакой реализации. glib-networking обеспечивает реализацию, которая зависит от внешних библиотек TLS. – TingPing
это сделал. Теперь мне просто нужно получить все сертификаты и потоки. Но заставил меня пройти мимо моей проблемы с новичком. благодаря! – mateuscb