Нужно ли PushSharp открывать входящие порты для машины, на которой он работает?
Мы используем PushSharp для отправки уведомлений GCM (Google Android). В будущем мы также будем использовать части библиотеки IOS и WinPhone.
Есть несколько событий, таких как:
- OnDeviceSubscriptionExpired
- OnDeviceSubscriptionChanged
- OnNotificationFailed
Я никогда не видел, чтобы эти события произошли после некоторого тестирования. Теперь я подозреваю, что связь может быть асинхронной и что нам могут понадобиться открыть некоторые порты для машины, на которой запущена служба, на которой размещается PushSharp.
Если это так, какие порты следует перенаправить и есть ли способ настроить или настроить конечные точки?
1 ответ
Входящие порты не требуются. Для GCM требуются обычные исходящие порты HTTP или HTTPS (для сервера соединений HTTP GCM. Сервер облачных соединений GCM отличается, но я вполне уверен, что ему также не требуются входящие порты, и в любом случае PushSharp, вероятно, использует HTTP GCM Server). APNS требует исходящих портов 2195 и 2196.
Упомянутые вами события, вероятно, инициируются PushSharp, когда он получает ответ об ошибке от GCM или APNS (или, для APNS, когда он получает токены устройства от службы обратной связи). В GCM связь является синхронной (при условии, что PushSharp использует сервер соединений HTTP GCM). В APNS связь является асинхронной, но ответы об ошибках читаются клиентом (т. Е. Вашим сторонним сервером) из того же сокета, который использовался для отправки сообщений, поэтому сервер APNS не инициирует никакой связи с вашим сервером.