spring mvc - java - send message error using smack4.2 firebase xmpp -
i trying send message. connection firebase xmpp server done. using latest smack 4.2.
public myclient(string senderid, string serverkey) throws ioexception, notconnectedexception, interruptedexception { roster.setrosterloadedatlogindefault(false); jid jid ; jid = jidcreate.from(host); final xmpptcpconnectionconfiguration conf = xmpptcpconnectionconfiguration.builder() .setcompressionenabled(false) .setsendpresence(false) .setconnecttimeout(10000) .sethost(host) .setdebuggerenabled(false) .setport(port) .setxmppdomain((domainbarejid) jid) .setsocketfactory(sslsocketfactory.getdefault()) .setusernameandpassword(senderid + "@gcm.googleapis.com", serverkey) .build(); this.conn = new myxmpptcpconnection(conf); try { conn.connect(); conn.login(); } catch (xmppexception | interruptedexception | smackexception e) { throw new ioexception(e); } roster roster = roster.getinstancefor(conn); collection<rosterentry> entries = roster.getentries(); (rosterentry entry : entries) { system.out.println(entry); } entity jentity ; jid jid1 = jidcreate.from("text"); entitybarejid jid21 = jidcreate.entitybarefrom("ak@gcm.googleapis.com"); chat chat = chatmanager.getinstancefor(conn) .createchat(jid21); message newmessage = new message(); string t = "hello test message"; newmessage.setbody(t.tostring()); /* ((object) chat).send(newmessage);*/ chat.sendmessage(newmessage); stanzafilter filter = new andfilter(new stanzatypefilter(message.class)); //packetcollector mycollector = conn2.createpacketcollector(filter); // normally, you'd collector, wait new packets. stanzalistener mylistener = new stanzalistener() { @override public void processpacket(stanza packet) throws smackexception.notconnectedexception { system.out.println("packet = [" + packet + "]"); } }; conn.addasyncstanzalistener(mylistener, filter); while (true) { } //conn2.disconnect(); } when running method got following error
packet = [hello test message25667738-6dd1-4c74-a64b-2fdbac74339binvalidjson : missingpayload] jul 26, 2017 12:52:46 pm
org.jivesoftware.smack.tcp.xmpptcpconnection$packetreader parsepackets info: myxmpptcpconnection[438277974557@gcm.googleapis.com/41ca77f0] (0) received closing element. server wants terminate connection, calling disconnect()
please review , suggest. in advance.
the fcm xmpp server uses json syntax. need use systax described fcm payload in this documentation. since xmpp uses xml, need embed json payload in xml node name gcm follows:
<gcm xmlns:google:mobile:data> json payload </gcm> for e.g, json payload may this:
{ "to":"apa91bexjvw4judxxxxx-xxxxxxxx", "data":{"message":"hello"}, "priority":"high" } for complete details on using xmpp connection server using gcm/fcm, take @ this documentation.
using smack can create class gcmpacketextension create gcm element json payload.
Comments
Post a Comment