Использование Google Channel API в C # - PullRequest
7 голосов
/ 05 декабря 2010

В официальной документации не упоминается поддержка, но мне интересно, можно ли подключить клиентскую программу вместо javascript для использования Channel API.В настоящее время я использую базовую технику опроса в приложении для Windows, и использование Channel API улучшило бы скорость отклика и немного снизило бы нагрузку.

Полагаю, что в качестве уродливого хака я мог отобразить скрытый объект webbrowser вфон и иметь JavaScript, работающий в этом, а затем питаться этим.Есть ли лучшее решение?

Ответы [ 2 ]

10 голосов
/ 05 декабря 2010

Использование XMPP не будет работать, потому что Channel API передает XMPP только между серверами Google: трафик XMPP не предоставляется браузеру (это можно проверить с помощью FireBug или Chrome Developer Window, чтобы просмотреть содержимое запросы "связать"; вы увидите, что JSON отправляется).

Как вы сказали, единственное жизнеспособное текущее решение - это обернуть элемент управления браузера, на котором запущен только JavaScript, для подключения к каналу в вашем приложении, и использовать его, чтобы сигнализировать вашему приложению C #, когда оно получает сообщения. Неуклюжий, но работоспособный.

Несмотря на то, что вы также можете провести обратный инжиниринг, а затем смоделировать, что делает iframe, и напрямую использовать сообщения JSON, ваше приложение может быть разорвано множеством способов при изменении деталей реализации - и они будут.

Все это говорит о том, что мне любопытно, сколько людей хотели бы иметь собственную библиотеку C # и какие приложения вы хотите писать с ней. WP7 приложения? Клиентские приложения Windows? Серверные приложения? Я создал запрос функции для App Engine здесь:

http://code.google.com/p/googleappengine/issues/detail?id=4206

Пожалуйста, подпишите его, если вам интересно, и чем больше деталей / убедительных вариантов использования вы можете назвать, тем лучше.

Спасибо!

3 голосов
/ 05 декабря 2010

Если возможно, вы можете подумать о прямом использовании XMPP .Есть несколько для C #.

Возможно, вы захотите получить себе копию FireFox + FireBug .Затем взгляните на вкладку «net» в FireBug и поиграйте с кем-нибудь demo app (или создайте свое собственное).Вы должны быть в состоянии выполнить запросы, а затем эмулировать их в своем коде C #.

уточнение : я не предлагаю использовать XMPP для связи с канальным API но для связи между вашим клиентским приложением и приложением App Engine.Я предложил использовать FireBug, потому что будет очень ясно, что трафик равен JSON.

...