问题标签 [ejabberd]
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.
xmpp - 使用正则表达式配置 ejabberd 整形器规则
我正在运行一个 ejabberd 服务器,我需要名称适用于特定模式的用户将有一个快速整形器分配给他们。例如,如果我有这些用户: A123 A222 B892 C123
我想让所有用户都使用“普通”整形器,但如果用户名是“A*”,我希望它获得“快速”整形器。我试图避免配置组并手动将所有“A *”用户添加到该组。
想法?
ejabberd - Ejabberd 和 Strophe 问题:“终止:删除会话”
我与这个问题“斗争”了超过 3 天,并且已经搜索了所有相关的内容。
所以,我想设置 Strophe 和 Ejabberd 以创建一个基本的聊天应用程序。我面临的问题是,每当我尝试将 Strophe 连接到 XMPP 服务器时,它都会保持状态 CONNECTING。如果我使用 Apache/Nginx 代理 - 我会收到 502 代理错误。
如果我在 flXHR 的帮助下使用直接连接到 http-bind - 浏览器中没有任何反应。只是停留在 CONECTING 状态。
我面临这个问题的机器有 Fedora 12 和 Ejabberd 2.1.4
在 ejabberd.log 我有这个:
事实上,在 Ubuntu 10.4 上使用相同的设置(相同的 javascript/html 和相同的 ejabberd.cfg)没有问题。我发现工作设置和不工作设置之间有两个区别。首先,在 Ubuntu 机器上我有 ejabberd 2.1.2-2 ,而在有问题的 Fedora 机器上它是 2.1.3(我试过和 2.1.4)。其次,在它工作的机器上,日志中没有“gethostname”和“terminate:Deleting session”。所以我想问题出在“删除会话”并且与“gethostname”有关,但是我没有足够的经验来解决这个问题。
任何有关如何进一步调试的帮助或线索将不胜感激。先感谢您。
javascript - 您如何将 XMPP 绑定会话镜像到多个选项卡或窗口,例如 facebook、okCupid 等
我已经使用 http 绑定和 ejabberd 实现了基于 Web 的即时消息/聊天功能。对于懒惰的人,这是我的问题的简短版本:
您将如何实现一个基于 Web 的 XMPP 聊天客户端,它可以同时显示在多个浏览器窗口中,每个窗口都显示打开聊天的相同视图?
对于那些关心的人,更详细的漫谈:
一种可能的解决方案是让每个选项卡管理它自己的连接。XMPP 对多个客户端有足够的支持,所以让它来做路由。我对此解决方案至少有两个问题。1 是这会导致带宽消耗的明显增加。2是目前ejabberd中不支持多个具有相同JID的客户端连接到MUC房间。这显然将在 3.1 中实现,但就目前而言,这对我来说是一个主要问题。
最初我想知道是否可能涉及一些闪光魔法,但似乎页面上的 swf 仅用于播放通知声音效果。您可以通过使用 firebug 或类似方法删除嵌入标签来确认这一点。聊天功能仍然有效。
这基本上让我将 cookie 作为在选项卡之间共享的唯一方式。在这种情况下,主选项卡会将所有消息转储到可以从其他选项卡轮询的 cookie 中。这对我来说似乎很荒谬,因为轮询频率必须非常高才能避免任何延迟。当“主”窗口关闭时会发生什么?
我已经看到不止一个站点这样做了,通常当我查看此类问题时,我至少可以模糊地理解我将如何处理它,但我不介意承认这个让我难过。
mysql - MySQL:从未知数量的表中查询
这就是我想要做的。我将 ejabberd 与 mod_logdb 一起使用。所有对话都记录到数据库中带有日期标记的表中。
例如:logdb_messages_2010-7-17_server_node
我要做的是编写一个搜索,该搜索将查看所有这些表,而不会过多地访问数据库。我想创建一个视图来获取表中的所有数据,这样我就可以点击它。
问题是可能有几天没有日志,当然还有我们开始记录的前几天。
有没有办法我可以以某种方式使用通配符从 MySQL 中获取这些?我的另一个人是编写一个每日 cron 作业来重新创建我需要的视图。
erlang - ejabberd:检查 Mnesia 表?
我正在研究 ejabberd 但我找不到检查其 Mnesia 表的方法。
是否有类似 MySQL shell 的东西来检查表?
ejabberd - 来自 ejabberd 上不允许节点的连接尝试
拥有 ejabberd 集群并存在问题。在尝试从第二个节点 ping 第一个节点时,我得到:
“来自不允许节点的连接尝试”
我知道这不是 cookie 问题,因为两台服务器上的 cookie 匹配。
iphone - ejabberd mod_offline iphone 推送通知
我目前正在开发一个聊天 iPhone 应用程序,到目前为止非常适合 ejabberd 服务器的常规配置。我想在用户“离线”时实现推送通知,为此我只需要运行一个 PHP 脚本,该脚本获取一个令牌设备和通过 SSL 将文本消息传递到 Apple 的服务器(Apple 部分已完成),我的问题开始是我不知道如何对我的 ejabberd 服务器执行此操作?基本上我只需要在可能的情况下对收到的离线消息创建一个操作。有人可以指出我正确的方向。我已经设法开始为一个新模块编写一些代码,但是当离线消息调用这个模块时,我总是遇到同样的错误,这是代码和错误。
模块.erl
错误
erlang - ejabberd:已安装,添加用户它的工作但 ejabberdctl 不工作
在 Ubuntu 10.04 上使用突触包管理器安装 ejabberd,没有任何错误。“sudo dpkg-reconfigure ejabberd”用于配置它。也使用http://localhost:5280/admin/控制台添加了用户。除 ejabberdctl 命令外,一切正常。
敲门人@ps0714-U:~$ ejabberdctl
与节点“ejabberd@ps0714-U”的 RPC 连接失败:nodedown
敲门人@ps0714-U:~$ ejabberdctl 状态
与节点“ejabberd@ps0714-U”的 RPC 连接失败:nodedown
knocker@ps0714-U:~$ ejabberdctl register test test
与节点“ejabberd@ps0714-U”的 RPC 连接失败:nodedown
配置有什么问题吗?我在这里错过了什么..?
python - Python ejabberd Auth Script 未响应数据库中的更改
我在 ejabberd(XMPP 服务器)中有一个基于THIS LINK的身份验证脚本
我稍微修改了脚本,因此它没有设置变量,而是返回真或假。
我正在使用 Ubuntu、MySQL、ejabberd 和 Python。
我可以验证数据库中已经存在的所有记录。但是,当我添加或删除记录时(我通过 phpMyAdmin 执行此操作),脚本似乎不知道数据库已更改(我在 phpMyAdmin 中删除了一个用户,它仍然对用户进行身份验证)。脚本识别新记录的唯一时间是我重新启动或强制重新加载 ejabberd 服务器时。我已经被告知这不是 mySQL 缓存问题。我确保关闭了 ejabberd 的外部身份验证缓存。
这就是我现在能想到的。如果我能想到的话,我会添加更多信息。任何帮助表示赞赏。我不知道发生了什么。
另外:我打开了 MySQL 日志,以及那里的所有查询,所以没有跳过查询。
php - 如何在网站上与注册用户完全集成 XMPP
我们有一个社交网站,人们在其中有联系,我们希望它与 XMPP 集成。我们目前使用 ejabberd XMPP 服务器。
以下是我的问题:
如何正确创建帐户?现在,我在想的是在我们的网络应用程序上注册用户,我们会调用一个脚本来执行 ejabberd 命令来创建一个用户。
用户认证。用户登录我们的网站后,用户将自动登录聊天系统。您如何使用 strophe.js 在客户端执行此操作?据我了解,您需要提供 JID 和密码进行身份验证,所以我认为在登录时,会有一个 ajax 调用来获取用户的密码,然后在 strophe.js 的登录调用中使用响应文本。这安全吗?还有其他方法可以做到这一点吗?
存在注册。我们的网络应用程序有一个联系人系统,但 XMPP 有自己的方式通过状态订阅添加联系人,对吧?示例:当 user1 尝试添加 user2 时,将要求 user2 授权,然后 user1 才能成为 user2 的联系人。但是由于我们的 Web 应用程序上已经有一个联系人系统,我们希望绕过 XMPP 的这种授权或禁止它,并在 user2 确认 user1 为我们网站上的联系人时使用脚本/命令进行授权. 我还不清楚,但一位同事说这可以在 ejabberd 的模块 mod_admin_extra 上实现(无需客户端授权即可创建订阅的命令)。是否有可能或者我必须使用脚本手动操作 ejabberd 数据库(前提是我从默认的 Mnesia 数据库转移到另一个数据库,比如 MySQL)。
提前致谢。