2015-04-13 5 views
0

Я пытался использовать пакет Onovotny's Zeroconf в своем приложении для работы с телефоном 8.1. Он обнаруживает сервис, который я ищу, но ни одна из записей TXT не возвращается.Zeroconf: Не удалось получить записи txt

В iOS Я использую NSNetServiceBrowser и для Android, JmDNS. Оба дают мне все, что мне нужно, поэтому я знаю, что это не сервис.

Это код, я использую:

public async Task StartDiscovery() 
{ 
    Action<IZeroconfHost> callback = new Action<IZeroconfHost>((IZeroconfHost host) => 
    { 
     Debug.WriteLine(host.Services.Count); 
    }); 

    IReadOnlyList<IZeroconfHost> results = 
     await ZeroconfResolver.ResolveAsync(SERVICE_TYPE, new TimeSpan(0, 0, 10), 4, 2000, callback); 
    Debug.WriteLine(results); 
} 

Когда я установить точку останова в моем обратном вызове, это то, что я вижу. visual studio screenshot

Я не уверен, что я делаю что-то неправильно или если библиотека не справляется с моей ситуацией. В любом случае, любая помощь будет очень признательна.

Примечание: Я опубликовал вопрос в репозитории Zeroconf GitHub пару дней назад, но не получил ответа.

ответ

0

Вместо использования пакета NuGet я вытащил код в свой проект и установил несколько точек останова.

В ZeroconfResolver.cs, когда я изменяю дополнения к ответам, я получаю записи txt для своего сервиса.

ZeroconfResolver.cs линии 249

// Get the matching service records 
var serviceRecords = response.Answers 
    .Where(r => r.NAME == ptrRec.PTRDNAME) 
    .Select(r => r.RECORD) 
    .ToList(); 

Edit: Объединение и ответы Вспомогательные списки лучший способ пойти.

List<RR> resourceRecords = new List<RR>().Union(response.Answers).Union(response.Additionals).ToList(); 
// Get the matching service records 
var serviceRecords = resourceRecords 
    .Where(r => r.NAME == ptrRec.PTRDNAME) 
    .Select(r => r.RECORD) 
    .ToList(); 
+0

Если вы открываете общедоступные службы, полезно рассмотреть как дополнения, так и ответы, потому что я заметил, что некоторые службы используют один, а некоторые используют другой. – Jon

+0

Спасибо, я объединил два списка, чтобы он работал с обоими. –

 Смежные вопросы

  • Нет связанных вопросов^_^