【问题标题】:How to get a response message from opening an App Engine Channel?如何通过打开 App Engine 频道获得响应消息?
【发布时间】:2013-09-03 20:37:06
【问题描述】:

我正在尝试在 Google App Engine 中创建一个典型的聊天室应用。到目前为止,当用户登录时,我能够为他们创建一个令牌,该令牌正在显示在聊天区域中。

我的问题是,在获得这个令牌后,我无法打开或使用该频道。

下面是我的 JavaScript 代码,我可以通过发送用户输入的 clientid 并将其发送到 servlet (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>

这是我下面的 servlet 代码,我可以在其中创建令牌:

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 的小示例。

【问题讨论】:

  • @leon 斯塔福德。谢谢

标签: java jquery servlets google-api channel-api


【解决方案1】:

在您的 javascript 中使用函数 onOpened() 来打印客户端已连接。

function onOpened() 
{

// event handler from when Connection has established.

                    }

【讨论】:

    猜你喜欢
    • 2012-06-28
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多