Как получить ответное сообщение от открытия канала App Engine?
Я пытаюсь создать типичное приложение для чата в Google App Engine. Пока что, когда пользователь входит в систему, я могу создать для него токен, который отображается в области чата.
Моя проблема в том, что после получения этого токена я не могу открыть или использовать канал.
Это мой код JavaScript ниже, где я могу создать токен, отправив введенный пользователем клиент и отправив его сервлету (chatroom.java):
<script type="text/javascript">
$(document).ready(function(){
alert("doc");
$("#field1").hide();
$(".button").click(function(){
$("#field2").hide();
$("#field1").fadeIn(2500);
var clientid = $("#textbox2").val();
var form=$('#form1');
$.get(form.attr('action'),$(form1).serialize(),function(data,status){
alert(status);
$('#display').val(" client id is "+clientid);
$('#display').val(" tok id is "+data.token);
});
});
});
</script>
Это мой код сервлета ниже, где я могу создать токен:
package com.example.chatroom;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
import com.google.appengine.api.channel.ChannelMessage;
import com.google.appengine.api.channel.ChannelService;
import com.google.appengine.api.channel.ChannelServiceFactory;
import com.google.appengine.labs.repackaged.org.json.JSONObject;
@SuppressWarnings("serial")
public class ChatroomServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
try
{
String clientid = request.getParameter("clientid");
ChannelService channelService = ChannelServiceFactory.getChannelService();
String token = channelService.createChannel(clientid);
System.out.println("token is ="+token);
JSONObject job=new JSONObject();
job.put("token",token);
String jsondata=job.toString();
out.write(jsondata);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Как открыть этот канал и использовать его для отображения сообщения "соединение установлено"? Мне нужен небольшой пример для работы с API канала.
1 ответ
Решение
Использовать функцию onOpened()
в вашем javascript вывести, что клиент подключен.
function onOpened()
{
// event handler from when Connection has established.
}