相关疑难解决方法(0)

在整个应用程序中保持XMPP连接(使用smack)

我正在使用XMPP连接(使用smack)在android应用程序中进行聊天.我已经与openfire建立了连接,我也可以发送和接收消息.但问题是当我进入XMPPClient.java活动然后它做了所以我不能得到任何消息,直到不进入那个活动.那么怎样才能在开始时建立连接,然后在其他活动中重用.Code在这2个链接ConnectionSettings文件和我们可以聊天的聊天屏幕中.在此链接中,评论行也是我的问题所以请同时查看该评论.

android xmpp

6
推荐指数
1
解决办法
5263
查看次数

如何有效地使用android的持久XMPP

我想开发一个即时消息应用程序.GCM,用于推送数据是一种流行的(和有效的)方式,如果你在Android上,但由于以下原因我没有使用它:

  1. 它删除了超过100个未传递的消息.
  2. 它不适用于没有谷歌应用程序的设备.

相反,我决定建立一个传统的XMPP服务器(openFire),我正在使用Smack api(TCP连接)进行连接.到目前为止,它进展顺利,但我有一些担忧.

这是我写的一个小测试代码(它在服务中运行):

    Log.d("TAG","service has started");
        SmackConfiguration.setDefaultPacketReplyTimeout(10000);
        XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                .setUsernameAndPassword("admin", "football100")
                .setServiceName("harsh-pc")
                .setHost("192.168.0.200")
                .setPort(5222).setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
                .build();

        final AbstractXMPPConnection conn2 = new XMPPTCPConnection(config);
        try {
            conn2.connect();

            conn2.login();

            Presence presence = new Presence(Presence.Type.available);
            presence.setStatus("online");
            // Send the packet (assume we have an XMPPConnection instance called "con").
            conn2.sendStanza(presence);

        } catch (SmackException | IOException | XMPPException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.d("TAG", e.toString());
        }
StanzaFilter filter=new StanzaFilter() {
    @Override
    public boolean accept(Stanza stanza) {
        return true;
    } …
Run Code Online (Sandbox Code Playgroud)

java android xmpp push-notification

5
推荐指数
1
解决办法
1743
查看次数

在asmack中重新连接

我在Android上有一个项目,需要使用asmack库来实现实时聊天.

关键功能是重新连接机制,这意味着我的应用程序可以在互联网连接丢失时自动重新连接.

这是我的代码片段:

ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT);
connConfig.setSASLAuthenticationEnabled(true);
connConfig.setReconnectionAllowed(true);
XMPPConnection connection = new XMPPConnection(connConfig);
Run Code Online (Sandbox Code Playgroud)

但是每当我关闭然后打开Wifi时我就会收到此错误:

10-01 21:43:26.942: W/System.err(13695): javax.net.ssl.SSLException: Write error: ssl=0x5a4ad348: I/O error during system call, Broken pipe
10-01 21:43:27.002: W/System.err(13695):    at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_write(Native Method)
10-01 21:43:27.012: W/System.err(13695):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLOutputStream.write(OpenSSLSocketImpl.java:693)
10-01 21:43:27.012: W/System.err(13695):    at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167)
10-01 21:43:27.012: W/System.err(13695):    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:158)
10-01 21:43:27.012: W/System.err(13695):    at java.io.BufferedWriter.flush(BufferedWriter.java:124)
10-01 21:43:27.012: W/System.err(13695):    at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:210)
10-01 21:43:27.012: W/System.err(13695):    at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:42)
10-01 21:43:27.012: W/System.err(13695):    at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:78)
10-01 21:43:27.092: W/System.err(13695): javax.net.ssl.SSLException: Read error: ssl=0x5a4ad348: I/O …
Run Code Online (Sandbox Code Playgroud)

android xmpp smack asmack

4
推荐指数
1
解决办法
3198
查看次数

标签 统计

android ×3

xmpp ×3

asmack ×1

java ×1

push-notification ×1

smack ×1