Как тестировать обновления Facebook в реальном времени - PullRequest
5 голосов
/ 04 февраля 2012

Чтобы публиковать обновления для моего приложения в режиме реального времени, Facebook необходимо выполнить запрос на публикацию на моем сервере.

Проблема в том, что мой сервер является моим домашним компьютером и не доступен для общего доступа из Интернета.Приведение сервера в действие для реализации этого звучит так, как будто это может быть болезненно ... не могу подключить отладчик, fiddler и т. Д.Интеграционные тесты, которые имитируют сервер Facebook?Возиться с брандмауэрами / NAT, чтобы попытаться заставить Facebook общаться с моим домашним компьютером?

Есть идеи?

Ответы [ 6 ]

6 голосов
/ 16 декабря 2013

Вы можете использовать ngrok - https://ngrok.com/ - бесплатную услугу (pay-what-you-can), которая делает именно то, что вам нужно. Сервис Localtunnel не работает, и разработчики также рекомендуют ngrok.

4 голосов
/ 15 февраля 2012

В прошлом я использовал LocalTunnel для этого.Это хорошая оболочка для туннеля SSH, которая эффективно назначает вам поддомен на localtunnel.com, указывающий на порт на вашем локальном хосте.

Так что, в основном, при запуске он будет выплевывать обратно внешне доступное имя субдоменанапример, xyz.localtunnel.com, чей порт 80 будет указывать порт, указанный вами в вашем локальном окне.

Вы можете найти его по адресу: http://progrium.com/localtunnel/

Это действительно отлично подходит для тестирования различныхподписка на pubsubhubbub (например, на Facebook).

2 голосов
/ 07 февраля 2012

На самом деле это было довольно просто: войдите в мой домашний маршрутизатор, настройте переадресацию портов на порт 80 на локальный IP-адрес моего компьютера, добавьте исключение в брандмауэр Windows для порта 80. Затем перейдите на мой общедоступный IP-адрес в браузер.

Реализация образцов приемника в: https://github.com/facebook/real-time/tree/master/samples

2 голосов
/ 05 февраля 2012

OK! Я думаю, что NAT должен быть лучшим выбором, и я не вижу причин, по которым он не работает. Вы должны попробовать это.

0 голосов
/ 30 октября 2014

Нет, вы не можете использовать ngrok только для имитации обновления Facebook в реальном времени, поскольку вы должны позвонить на серверы Facebook с вашим адресом ngrok, чтобы проверить его (скажите, если вы узнаете, как это сделать: p). Я использую сервер openshift , чтобы получать данные в реальном времени с Facebook, а затем публиковать все полученные данные json, полученные из Facebook, на мой адрес ngrok. Итак, процесс

  1. настроить сервер openshift для получения уведомлений Facebook
  2. Facebook отправляет уведомления на ваш openshift
  3. ваш openshift отправляет данные (полученные) на ваш адрес ngrok

И если вам необходимо получать уведомления в Facebook на локальном веб-сайте (например, www.website.dev/fb-notifications/), то создайте в папке localhost скрипт, который получает сообщения openshift (назовем его tunelscript.php). процесс будет

  1. настроить сервер openshift для получения уведомлений Facebook
  2. Facebook отправляет уведомления на ваш openshift
  3. ваш openshift отправляет данные (в том виде, в котором они были получены) в ваш скрипт Tunel через ваш адрес ngrok (perso.ngrok.com/tunelscript.php)
  4. Пересылка данных из вашего tunelscript на локальный веб-сайт (tunelscript.php => www.website.dev/fb-notifications/)

Это Tuneling B -)

0 голосов
/ 04 февраля 2012

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

Существует множество бесплатных веб-хостов, которые позволяют создавать сценарии на стороне сервера.И есть много платных за веб-хостов там тоже.Stackoverflow - это не то место, где можно найти информацию о том, где, когда, почему, как много для веб-хостинга.

...