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

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -