问题标签 [messenger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
145 浏览

c# - 两个线程调用同一个方法时线程同步的困惑

我创建了一个 Messenger 库,并使其成为线程安全的,因此它可以在线程之间共享而无需担心。我主要使用 Monitor 类来实现这一点。

我有一个 Logout 例程,它可能需要一些时间才能完成,因为它会在关闭套接字等之前尝试等待事务发生。它是异步的并且具有 Begin/End 方法,但对于这个示例,我们将假装它是同步的。

如果两个线程一个接一个地调用 Logout 怎么办?我应该用第二个线程做什么?

目前我阻塞(使用 Monitor.Wait 等待来自第一个线程的脉冲)直到第一次注销完成,然后抛出 AlreadyLoggedOutException。

如果调用 Logout 但已经发生注销,我还玩弄了一个 LogoutInProgress 异常。

两者似乎都有优点和缺点,但我想知道其他人认为什么是最好的。

0 投票
1 回答
374 浏览

javascript - 通过 Javascript 连接 Windows Live Messenger

我已经放弃自己解决这个问题,任何帮助将不胜感激。我的最终目标是将 WLM(windows live messenger)实施到我公司的网站中。为此,我可以使用 javascript 和/或 php,但我个人非常喜欢 Javascript,因为我认为调试任何未来的错误会更容易,因为我可以观察流量。

在我获得所有需要的信息后,我没有做的是连接到 WLM XMPP 服务。在文档中,此时提供的唯一帮助听起来类似于“咨询您的 xmpp 库以获取有关如何连接到服务的信息”。我曾尝试使用 Strophe 连接,但我真的不知道我是否真的能够,因为我读过 WLM 不支持 BOSH 服务(http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/线程/fb7af36c-aa77-4c9b-b8ab-8206427469be)?读完之后,我对接收消息的整个过程是如何完成的也有些不知所措。此外,在我的理解中,javascript 不会让我将任何 http 请求发送到另一个域,这是我在与 XMPP 服务通信时实际尝试做的(据我所知)。

虽然我认为我了解其余的过程 - 身份验证、连接等,但我未能找到通过 javascript 通过身份验证点的方法。任何建议/代码示例都会非常非常有用......

这(http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/thread/5f0d6428-5664-4c97-8d36-87dd17d3d7fa)是 MSN 连接论坛中的一个论坛主题,我问了几个问题并得到一些答复,以防any1需要更多信息。

祝大家有美好的一天:)

0 投票
1 回答
78 浏览

c# - 如何在不占用资源的情况下连续引发大量事件

我正在开发一个 Messenger 库。主类有一个 Login 方法。登录时,所有联系人列表数据都被下载并存储,直到登录完成,此时我为每个下载的用户引发一个UserAdded事件。

目前,我在 Login 方法的末尾一一提出事件。这可行,但这意味着如果我在 UserAdded 事件处理程序中执行冗长的操作,库使用者不会及时获取他们的事件。

我可以看到解决此问题的一种方法是异步引发每个事件,但这会破坏线程池。

我目前的做法是否正确?我是否应该在文档中简单地做一个注释,警告不要在事件处理程序中执行冗长的操作?

0 投票
4 回答
372 浏览

c# - Messenger 库中联系人列表/名册下载/同步的理想设计模式

MessengerClient类上有一个Login函数。MessengerClient类有一个LoggedIn事件和一个IsLoggedIn属性。

当在MessengerClient类上调用Login时,联系人列表/名册通过套接字从远程服务器获取并进行处理,然后认为客户端已登录并且IsLoggedIn将返回 true。LoggedIn事件在此之后的 Login 函数内引发(因此,在请求登录的同一个线程内 - 我不认为这是一件坏事)。

登录后,客户端会在发生时从远程服务器接收实时更新。

在登录期间处理联系人列表/名册时,我相信最终用户的理想设计是在客户端被认为已登录之前处理所有联系人列表/名册数据。这样,当用户收到LoggedIn事件时,他们能够立即访问联系人数据。

例如 -

这里我们有LoggedIn事件的最终用户处理程序。

由于在客户端被标记为已登录之前已处理了所有联系人列表,并且在引发 LoggedIn事件之前,上述语句返回 true。从逻辑上讲,我相信这是最终用户所期望的,因为下载和处理联系人列表是登录操作的一部分。

现在,我还喜欢在将联系人添加到联系人列表或添加到组时引发事件。按照我到目前为止提到的逻辑,在处理数据时引发ContactAddedContactAddedToGroup等事件显然是没有意义的,因为这将导致最终用户在 MessengerClient 类甚至之前收到这些事件之一标记为已登录。

如上所示,会导致坏事发生。

所以我真正需要做的是处理联系人列表数据,引发登录事件,然后引发所有其他联系人事件。

为此,我可以遍历所有联系人对象、组对象等并引发适当的事件。

到目前为止还好,对吧?

然而,问题在于,除了在首次登录时下载联系人列表数据之外,如果客户端注销然后重新登录,我还必须准备同步联系人数据。

这将涉及诸如 ContactRemoved、ContactNameChanged、ContactRemovedFromGroup 等事件。

因此,它不再像遍历联系人、组等那样简单,因为现在我必须考虑已删除或属性已更改的联系人。

所以我需要一种替代方法来“排队”这些事件在登录发生后引发。

我考虑过用类来表示每个同步事件——例如 SyncContactRemoved、SyncContactNameChanged、SyncContactAddedToGroup。有了这个,我可以处理数据,为每个事件创建一个 Sync*XXX* 类,并将它们添加到一个列表中,然后我可以在登录后对其进行迭代。

我还考虑过对对象本身使用方法。即 Group.SyncContactsAdded、Contact.SyncNameChanged、MessengerClient.SyncContactsAdded。然后我可以在登录后遍历联系人/组等,检查这些属性,在必要时引发事件,然后清除它们。

最后,我考虑了一个包含 EventHandler 和 EventArgs 的 Event 类。事件可以以这种方式排队,然后在登录后一一调用。

如果有的话,这些模式中的哪一个会被认为是更常见的做法。还是有其他方法可以实现这一目标?

我为这么长的问题道歉,但这不是一个简单的问题。

谢谢

0 投票
2 回答
516 浏览

ubuntu - 如何在网络中的 2 台 ubuntu 机器之间聊天?

我想知道我们如何在网络中的 2 台 ubuntu 机器之间聊天。

网络中 2 个 ubuntu 的任何命令行聊天信使?
或 GUI 也可以工作。

我在问“网络聊天信使”。

0 投票
1 回答
6493 浏览

android - Android:调用远程信使服务的同步方法

我想编写一个连接到远程服务的模块。

开发人员可以在他们的应用程序中使用该模块连接到特定的(蓝牙)硬件。然后它应该连接到一个可以在市场上单独更新的远程服务。

因为远程服务只允许同时使用它的所有应用程序有一个线程(只有一个蓝牙连接),所以我选择了信使方法而不是 AIDL。

我现在的问题是我想在我的公共 API 中提供一个同步方法,但服务在处理程序中返回 - 据我所知,处理程序将一直等待当前任务完成......所以有没有在不同的线程中获得答案的方法?

我希望它是同步方法的代码:

提前致谢。我希望我的问题有点可以理解...... ;)

/编辑:我想要一些从服务器返回数据的方法。喜欢

但我等不及服务的返回,因为我被困在阻止处理程序返回的线程中......

0 投票
3 回答
1474 浏览

java - Java messenger(多线程和摇摆)

嘿,我在使用 java messenger 应用程序时遇到问题。我在 netbeans 和一个服务器和客户端类中制作了一个简单的 gui。当我在 gui 中创建一个新的服务器实例时,我启动一个新线程并开始在其中监听。当服务器获取某些东西并转到我想在另一个类和另一个线程(GUI)中的 JTextPane 上使用 setText()时,就会出现问题。这是代码:

gui类中连接按钮的代码:

服务器类:

对不起,我忘记了:

0 投票
2 回答
674 浏览

iphone - 在 xcode 中输入指示器

有谁知道如何为 iPhone 聊天应用程序实现打字指示器(“John 正在打字”)?这可以感知用户何时正在打字。就像在 Kik messenger 中一样。

我试图在发布之前衡量需要多少工作才能实现这一点。

或者正确方向的指针会有所帮助!

问候

0 投票
1 回答
131 浏览

login - 以编程方式登录 msn Messenger

如何启动一个 msn 信使窗口,填写电子邮件并传递字段,然后使用 C# 以编程方式“按下”按钮“登录”?

我想这样做是因为这样可以省去我为 4 个电子邮件地址手动执行所有这些操作的麻烦。

提前致谢!

0 投票
1 回答
500 浏览

android - 意外的应用程序崩溃

我尝试创建一个服务客户端应用程序(仍在学习这些)。我的应用程序从一开始就崩溃并且不让我做任何事情。任何想法如何解决?这是我的 2 个类和清单文件。

//////////////// 1. MainActivity.java ///////////////////

}

//////////////// 2. MessengerService.java ////////////////////

}

///////////////// 3. 清单/////////////////////// /////////