用Java接受从Gtalk发出的信息

Standard

现在来看看怎样才能接受由Gtalk发出的信息呢? 在Smack�我现在知道有两种方式,可以获得Gtalk发出的信息

  • 使用chat的nextMessage方法,然后加工处理这个信息,将处理的结果使用sendMessage发送回去。

    Chat.setFilteredOnThreadID(false);
    while (true) {
    Message message = chat.nextMessage();
    chat.sendMessage(message.getBody());
    System.out.print (message.getBody());
    }

  • 使用PacketListener进行监听经过过滤后的Packets,当有新的Packet时候,就会调用processPacket来进行处理。你只需实现这个方法即可。

    Chat.setFilteredOnThreadID(false);
    GoogleTalkConnection con = new GoogleTalkConnection();
    con.login(”iouniuniu”, “me”);
    PacketListener messageListener = new PacketListener() {
            public void processPacket(Packet packet) {
            Message message = (Message) packet;
            String body = message.getBody();
            handle(body);
        }
    };
    con.addPacketListener(messageListener, new PacketTypeFilter(   
                               Message.class));

但是如果要成功必须注意下面两个问题:

  • 必须设置Chat.setFilteredOnThreadID(false);
  • 对方必须是经过确认的好友。如果你把对方加入联系列表,但对方没有接受,可能不能收到信息

后�问题,现在仅仅是在代码上实现了怎么和Google Talk进行通信,具体的原理并不清楚。接下来的工作就是要慢慢的了解Smack的实现方法和Jabber的基本原理。要做到知其然,并且知其所以然。

Tags: Gtalk, Java, Smack


爱别人,爱自己!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s