Как я вижу из вашего комментария, у вас были проблемы с тестированием API канала в вашей локальной системе разработки.
Это сработало для меня, когда я скачал channel.js (вместо использования http://*.appspot.com/_ah/channel/jsapi) и использоваллокальная копия в фоновом скрипте
<script type="text/javascript" src="/lib/channel.js"></script>
В файле channel.js измените строку, определяющую
goog.appengine.DevSocket.BASE_URL = "http://localhost:8080/_ah/channel/";
, чтобы представить вашу локальную среду (порт для appengine testserver)
Кроме того, URL, который вы отправляете в xhr.open, должен находиться в разделе «Разрешения» ваших манифестов, в моем случае
"permissions":
[
...,
"http://localhost:8080/"
]
Токены, сгенерированные вашим локальным тестовым сервером appengine, отличаются от токенов в живой системе.так что невозможно смешать два.