关于Java聊天收到消息自动弹出窗口代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Java聊天收到消息自动弹出窗口代码相关的知识,希望对你有一定的参考价值。

我现在做了一个两个人之间的聊天程序,在不同机器上聊天,但是必须要两个人都打开聊天窗口才能实现聊天,聊天窗口都是通过点击一个Button后才能弹出的,我现在想做的就是A打开聊天窗口,B不打开聊天窗口,当A发送消息后,B能够自动弹出聊天窗口显示消息,该怎么做啊,新手,跪求代码

参考技术A tcp或者udp设置为全局的,不要定义在某一个窗体里面,当udp读取线程接受到数据后,就直接new这个窗体,把消息带过去,比如new ChatFrame(String msg).show();就行了。 参考技术B 来消息了自动触发弹出窗口事件啊

使用 smack 的多用户聊天没有收到消息侦听器

【中文标题】使用 smack 的多用户聊天没有收到消息侦听器【英文标题】:Multiuser chat using smack not getting message listner 【发布时间】:2016-10-19 05:33:45 【问题描述】:

我正在使用 smack 库开发聊天应用程序。我在群聊中有问题。在我的应用程序中,我正在创建组,并且成员是自动加入的。我想在我在组中发送消息时通知所有用户,即使他们没有发起聊天。我的代码如下,我在 init 方法中放置了监听器,但是无法接收消息。

 //Initialize
public void init(String userId, String pwd, Context context) throws SmackException.NotConnectedException 
    this.mUserName = userId;
    this.mPassWord = pwd;
    this.mContext = context;

    sessionManager = new SessionManager(context);

    if (userId.contains("@")) 
        this.mUserName = userId.split("@")[0];
    
    XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
    configBuilder.setUsernameAndPassword(mUserName, mPassWord);
    configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    configBuilder.setServiceName(XMPPCredential.SERVICE);
    configBuilder.setHost(XMPPCredential.HOST);
    configBuilder.setPort(XMPPCredential.PORT);
    configBuilder.setResource("");
//        configBuilder.setDebuggerEnabled(true);


    mConnection = new XMPPTCPConnection(configBuilder.build());
    PingManager pingManager = PingManager.getInstanceFor(mConnection);
    pingManager.setPingInterval(300); // 2.5 min
    pingManager.registerPingFailedListener(this);

    mChatmanager.getInstanceFor(mConnection).addChatListener(this);

    multiUserChatManager = MultiUserChatManager.getInstanceFor(mConnection);
    mConnection.addAsyncStanzaListener(this, null);
    mConnection.addSyncStanzaListener(this,null);

    ReconnectionManager.getInstanceFor(mConnection).enableAutomaticReconnection();
    mConnection.addConnectionListener(this);

    // Connect with XMPP server
    connectConnection(context);

【问题讨论】:

【参考方案1】:

每个 MultiUserChat 都需要像这样添加一个 Listener:

MultiUserChat muc =  MultiUserChatManager.getInstanceFor(mConnection).getMultiUserChat( mucJid );

muc.addMessageListener(new MessageListener()...);

【讨论】:

如果有多个 Room,我们怎么知道 mucJid? mucJid 在这种情况下会有所不同吗?在我看来,我们需要使用节标签。

以上是关于关于Java聊天收到消息自动弹出窗口代码的主要内容,如果未能解决你的问题,请参考以下文章

我在玩 swf 游戏时如何阻止聊天窗口弹出?

javaSwing 关闭窗口,弹出消息框,无论我点击是,否 都关闭窗口,见代码!

JAVA咨询 消息框 最小化下能够弹出

关于IDM弹出窗口问题,怎么设置让IDM弹出来,求助。

qq好友发过来消息时自动在右下角弹出小窗口怎么设置

为啥别人打微信视频不能弹出页面只有一个小窗口?