Я запускаю веб-приложение gae на локальном хосте. Я успешно сгенерировал токен из goog.channel и отправил его клиенту. Где клиент может принять токен и пытается открыть соединение. Проблема в том, что я отправляю сообщение из своего класса сервлета, и на стороне клиента ничего не происходит.
Ниже приведены мои коды:
Сторона сервера:
//for generating token
ChannelService channelService=ChannelServiceFactory.getChannelService();
token = channelService.createChannel(userid);
//for sending message
ChannelService channelService=ChannelServiceFactory.getChannelService();
channelService.sendMessage(new ChannelMessage(userid, message));
//in appengine-web.xml
<inbound-services>
<service>channel_presence</service>
</inbound-services>
Javascript:
function getToken(){
var xmlhttpreq=new XMLHttpRequest();
xmlhttpreq.open('GET',host+'/channelapi_token?q='+user,false);
xmlhttpreq.send();
xmlhttpreq.onreadystatechange=alert(xmlhttpreq.responseText);
token=xmlhttpreq.responseText;
setChannel();
}
function setChannel(){
alert(token);//iam receiving right token here
channel=new goog.appengine.Channel(token);
socket=channel.open();
socket.open=alert('socket opened');//this message alerts
socket.onmessage=alert('socket onmessage');//this message alerts
socket.onerror=alert('socket onerror');//this message alerts
socket.onclose=alert('socket onclose');//this message alerts
}
Исключений при отправке сообщения из ChannelService нет. Также клиентская сторона повторно делает запрос на получение на мой сервер:
http://localhost:8888/_ah/channel/[email protected]&client=connection-3
Что здесь не так? Заранее спасибо.