The Channel API is working for me, but I don't see anything you are
doing wrong in your code. Here is a link to another discussion
containing the code that worked for me
https://groups.google.com/d/topic/google-appengine-java/GfJQsf8OQ0I/discussion


On Dec 16, 5:26 am, Tarun <[email protected]> wrote:
> I have been trying to use the newly launched Channel API on SDK 1.4 in
> my project. I try to push a message to client which actually pops up a
> notification but I am getting the ChannelFailureException.
> Here is the code:
> TestServlet Where the token is created:
> public void doGet(HttpServletRequest req, HttpServletResponse resp)
>                         throws ServletException, IOException {
>                 PrintWriter out = resp.getWriter();
>                 resp.setContentType("text/html");
>                 // Creating the userID on the basis of the session id
>                 String userId = req.getSession().getId();
>                 // Starting the ChannelService of the channel API
>                 ChannelService channelService = ChannelServiceFactory
>                                 .getChannelService();
>                 // Creating the client token
>                 String token = channelService.createChannel(userId);
>                 req.getSession().setAttribute("token", token);
>
>                 out.println("<html>");
>                 out.println("<head>");
>                 out.println("<title>This is a servlet which will be used to 
> try the
> new Channel API</title>");
>                 out.println("</head>");
>                 out.println("<body>");
>                 out.println("<a href=\"/ChannelAPI.jsp\">Click Here</a> to 
> recieve a
> notification on the next page using channel API");
>                 out.println("</body>");
>         }
>
> }
>
> Channel API.jsp
> <script>
>     channel = new goog.appengine.Channel('<%= userId%>');
>     socket = channel.open();
>     //socket.onopen = onOpened;
>     socket.onmessage = onMessage;
>     socket.onerror = onError;
>     socket.onclose = onClose;
>     onMessage = function (message){
>         $.pnotify({
>                         pnotify_title: 'Regular Notice',
>                         pnotify_text: message.data
>                 });
>     };
>
>     onError = function (description,code){
>         $.pnotify({
>                         pnotify_title: 'Uh Oh!',
>                         pnotify_text: 'something went wrong',
>                         pnotify_type: 'error',
>                         pnotify_hide: false
>                 });
>     };
>  </script>
>
> Send Message servlet:
> public void doGet(HttpServletRequest req, HttpServletResponse resp)
>                         throws ServletException, IOException {
>
>                 String userId = (String) 
> req.getSession().getAttribute("token");
>                 ChannelService channelService =
> ChannelServiceFactory.getChannelService();
>                 channelService.sendMessage(new ChannelMessage(userId,
>                                 "This is the message that has been sent"));
>
>         }
>
> }
>
> The stack trace I got
> Uncaught exception from servlet
> com.google.appengine.api.channel.ChannelFailureException: An
> unexpected error occurred.
>         at
> com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServ 
> iceImpl.java:
> 59)
>
> Can you tell me if there is something wrong with the code or with the
> Channel API?
>
> Thanks in advance,
> Tarun

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to