1

Google App Engine で典型的なチャット ルーム アプリを作成しようとしています。これまでのところ、ユーザーがログインすると、チャット エリアに表示されるトークンを作成できます。

私の問題は、このトークンを取得した後、チャネルを開いたり使用したりできないことです。

これは以下の JavaScript コードで、ユーザーが入力した clientid をサーブレット (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 を操作するためのちょっとした例が必要です。

4

1 に答える 1

2

onOpened()JavaScript で関数を使用して、クライアントが接続されていることを出力します。

function onOpened() 
{

// event handler from when Connection has established.

                    }
于 2013-09-10T08:48:36.840 に答える