Below is the function to process the packet:
public void processPacket(Packet p_packet)
{
if (p_packet instanceof Message)
{
System.out.println(“Message”);
}
else if (p_packet instanceof Presence)
{
Presence l_presence = (Presence)p_packet;
if (l_presence.getType() == Presence.Type.SUBSCRIBE)
{
System.out.println("Subscription from " + l_presence.getFrom());
l_presence.setType(Presence.Type.UNSUBSCRIBED);
l_presence.setTo(l_presence.getFrom());
g_xmppConn.sendPacket(l_presence);
}
}
}
Below is the way I add packet listener:
l_xmppConn.addPacketListener(this, new PacketTypeFilter(Message.class));
l_xmppConn.addPacketListener(this, new PacketTypeFilter(Presence.class));
I want to learn how to accept and reject the subscription in code. I got the error at g_xmppConn.sendPacket(l_presence); line:
Subscription from usera@localhost
java.lang.NullPointerException
at Test.processPacket(Test.java:33)
at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader .java:817)
at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.java:255)
at org.jivesoftware.smack.PacketReader.access$100(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$2.run(PacketReader.java:72)
Can expert show me how to do both ?
Thanks !