2011-02-07 2 views
1

Я реализовал настройку W2F P2P в простом приложении.Когда P2P не подключится, как «перезагрузить» его в клиенте

Мой вопрос является результатом тестирования этого с несколькими клиентами. Девять раз из десяти, все клиенты будут синхронизироваться в сетке и подключаться без проблем.

Однако, в зависимости от того, какой клиент я закрываю, а затем снова открываю, он не будет повторно подключаться к сетке. Другие клиенты этого не видят.

Мой вопрос: как я могу закрыть и повторно открыть p2p на этом клиенте, чтобы он мог попытаться снова подключиться? Я бы поставил таймер, возможно, каждую минуту или около того, если он не подключен, он может предположить, что есть проблема, поэтому он закрыл бы конечную точку p2p или что-то еще, а затем снова откроет ее, чтобы обновить все это.

Я прошу об этом, так как если я закрою этого клиента, а затем снова откроем его, он снова подключится к сетке.

Я хочу надежные соединения. Например, вы открываете клиента, и клиент будет выяснять, должен ли он перезагружаться или не получает соединение через определенное время, поэтому пытается «сбросить» соединение и перестроить его.

Имеет ли это смысл?

ответ

1

Будет сложно определить, что вы не подключены к сетке из-за неизвестного состояния неисправности, а не просто в одиночестве.

Свойство IOnlineStatus на одноранговом канале может сообщить вам, если вы одиноки в сетке (false), или если вы подключили сверстников (true). Вы можете получить эту собственность путем регистрации на событие изменения состояния, как так:

IOnlineStatus status = myPeerChannel.GetProperty<IOnlineStatus>(); 
status.Online += new EventHandler(MyOnlineEventHandler); 
status.Offline += new EventHandler(MyOfflineEventHandler); 

Так что я полагаю, один из способов сделать это было бы иметь таймер, который проверяет ваш статус, и если вы идете более чем X количество время в автономном режиме, удалите свой канал и создайте новый.

+0

Это то, что я закончил с таймером. Кажется, что он работает правильно и до сих пор имеет 100% -ный успех при восстановлении соединения. – Nate

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

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