使用ejabberd时有没有办法打包msg?

2023-12-04

我正在测试 ejabberd 的 mucroom。测试客户是Tsung。 测试条件:

  1. 一台ejabberd服务器(4核16G RAM)
  2. 3000 个用户加入 1 个 mucroom
  3. 用户1分钟内随机发送一条消息,每个用户发送5条消息 服务器操作系统CPU:90%在此输入图像描述

结果并没有达到预期。 我怀疑原因是服务器需要广播太多消息。一个用户发送一条消息,服务器需要广播给2999个用户。 我用 Wireshark 获取消息包,发现每条消息都是单独的。 有没有一种方法可以将多条消息打包在一个包中?


抱歉,我犯了一个错误。 ejabberd 已经将一些消息打包在一个消息包中。Wireshark 截图

我相信 ejabberd 可以在具有 4Core 和 16G Ram 的服务器上容纳更多用户。 是否有其他原因导致结果达不到预期?


3000 个用户在同一个房间,所有人都在聊天?显然那些人不是人类,他们是机器。也许 MUC 不是更适合您的用户情况的协议。 MUC 涉及检查每个房间占用者的角色和特权、他们的存在等。

也许您应该考虑 Muc/Sub、PubSub(或 MIX)或 MQTT

有没有办法将多条消息打包在一个包中?

你可以应用这个并进行实验https://github.com/processone/ejabberd/pull/3844 https://github.com/processone/xmpp/pull/63

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ejabberd时有没有办法打包msg? 的相关文章

  • 随机排列列表中的元素(随机重新排列列表元素)

    我的程序的一部分要求我能够随机洗牌列表元素 我需要一个函数 当我给它一个列表时 它会伪随机地重新排列列表中的元素 安排的改变Must每次通话时都可以看到相同的列表 我的实现似乎工作得很好 但我觉得它相当长 并且正在增加我的代码库 而且 我有
  • 构建 Erlang 服务器场(用于业余爱好项目)最便宜的方法是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 假设我们有一个 本质上并行 的问题需要用 Erlang 软件来解决 我们有很多并行进程 每个进程都执行顺序代码 不是数字运算 并且我们向它们投入的 C
  • Elixir / Erlang Dialyzer:为什么行为回调的参数类型应该是子类型而不是超类型?

    我有一个行为 X 和一个参数类型的回调函数 a any 模块 Y 实现行为 X 实现模块 Y 中的回调函数具有参数类型 a any b any Dialyzer 不喜欢这样并抱怨 a b gt is not a supertype of a
  • Erlang 生成问题

    我在 erlang 中遇到了 spawn 问题 似乎进程在一段时间后就死掉了 这是简单的代码 module simple export server 1 client 1 owner 1 spawn n 2 start 1 main 1 s
  • Erlang TCP 套接字关闭

    为了学习 Erlang 我正在尝试实现一个基于gen tcp 不幸的是 我的代码似乎触发了一些有线行为 为了演示这个问题 我附上了我的实现的最小化版本 它足以重现该问题 无论 HTTP 请求是什么 它都只是传递静态 200 OK 当我尝试运
  • RabbitMQ 失败,错误:无法连接到节点rabbit@TPAJ05421843:nodedown

    在 Windows 7 Enterprise 计算机上 我全新安装了 Erlang 17 4 和 RabbitMQ 3 4 3 x64 安装成功且顺利 我还没有尝试创建我的第一个队列或交换器 但我已经看到了麻烦 这个问题类似于另一个SO帖子
  • 与共享数据相比,消息传递的性能损失

    最近有很多关于不使用锁和使用 Erlang 等消息传递方法的讨论 或者关于使用不可变的数据结构 例如函数式编程与 C Java 中的比较 但我关心的是以下几点 AFAIK Erlang 不保证消息传递 消息可能会丢失 如果还要担心消息丢失
  • ejabberd 和 Erlang 安装,lager_transform 未定义

    我是 Erlang 新手 我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd 一切都很顺利 直到我开始编译一些外部模块ejabberd 它开始抛出错误undefined parse transform la
  • Node.js 或 Erlang

    当谈到它们可以处理的并发级别时 我真的很喜欢这些工具 Erlang OTP 看起来是更稳定的解决方案 但需要更多的学习和深入研究函数式语言范例 看起来 Erlang OTP 在多核 CPU 方面做得更好 如果我错了 请纠正我 但我应该选择哪
  • Erlang:如何限制分配给进程的内存

    我要问的是是否可以限制分配给特定进程的内存 堆或堆栈 以便该进程不能超过它 也许类似于 process flag min heap size MinHeapSize 但针对最大堆 您可以将某种进程跟踪 gen server 放在一起 定期检
  • ejabberd 支持离线文件传输吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在开发 XMPP 客户端 使用 ejabberd 作为服务器 我的问题是如何支持离线文件传输 我只想对图像文件进行离线文件传输 例如 即使约翰离线
  • XMPP会议室邀请函

    在我的聊天应用程序中 我想实现群聊功能 同样 我想创建房间并向我的朋友发送加入房间的邀请 这是我加入并邀请朋友进入房间的代码 创建房间 Create Room btn CreateRoom Button findViewById R id
  • 如何在smack中设置我的名字?

    我可以使用 connection getRoster getName 来获取联系人的名册名称 但如何set当前经过身份验证的帐户的名称 使用不同的帐户登录 说真的 你的帐户名与你的身份验证绑定在一起 没有办法强迫对方为你使用特定的昵称 但如
  • 适用于服务器端的良好 XMPP Java 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望用 Java 实现一个简单的 XMPP 服务器 我需要的是一个可以解析和理解来自客户端的 xmpp 请求的库 我看过 Smack 下
  • Erlang:如何将小数转换为填充零的十六进制字符串

    我想在 Erlang 中将 42 基数 10 转换为 000002A 基数 16 我在网上找到了一些提示 io format 8 0B n 42 gt 00000042 And io format 16B n 42 gt 2A 但我似乎无法
  • Mnesia:如何同时锁定多行,以便我可以写入/读取一组“一致”的记录

    我多么希望我一开始就能表达我的问题 取一个包含 26 个键 a z 的表 并让它们具有整数值 创建一个流程 哎哟 一遍又一遍地做两件事 在一笔交易中 写入随机值a b and c使得这些值always总和为 10 在另一个事务中 读取值a
  • 如何使用 Smack API 通过 AccountManager 的身份验证令牌向 Google Talk 进行身份验证?

    这个问题类似于 使用 authToken 对 Google Talk XMPP Smack 进行身份验证 https stackoverflow com questions 6194899 authenticate to google ta
  • Erlang 如何睡觉(晚上?)

    我想在 Erlang 服务器上每隔几个小时运行一次小型清理过程 我知道计时器模块 我在教程中看到一个示例 使用链式计时器 睡眠命令来等待几天后发生的事件 我觉得这很奇怪 我知道 Erlang 进程与其他语言中的进程相比是独一无二的 但是进程
  • Erlang 中的变量

    我有一个非常简单的 Erlang 程序 module test export start 0 Code Z00887 start gt io fwrite Code 我有以下两个错误 c erl6 1 dev test erl 4 之前的语
  • XMPP 多用户聊天设置群聊头像

    我正在开发一个带有聊天功能的 iOS 应用程序 我正在为该应用程序使用 XMPP 在XMPP多用户聊天中 是否有功能可以像我们在whatsapp中那样为会议室设置头像或群组图像 我检查过XEP 0045 http xmpp org exte

随机推荐

  • 应用程序的 Facebook 登录配置错误:Kindle Fire 集成问题

    我们在 Kindle Fire Android 应用程序上集成了 Facebook 登录 大多数时候它都可以正常工作 但有时对于某些用户来说 当他们尝试使用 facebook 登录进行注册时 会失败并显示错误 APp 的 facebook
  • C# 中的动态 Where 子句 lambda

    我有一个如下所示的搜索表单 表单背后的代码如下所示 using Html BeginForm Html ValidationSummary div Html DropDownList SelectedType Model TypeOptio
  • 在 fb_var_screeninfo 中设置 yres_virtual 时出现无效参数错误

    我正在尝试为 Linux 创建一个直接写入帧缓冲区 dev fb0 的应用程序 为了使其成为双缓冲 我尝试使虚拟屏幕成为屏幕大小的两倍 这是我写的程序 struct fb var screeninfo screeninfo var stru
  • nhibernate 审核更新事件

    以下代码适用于插入但适用于更新modifier从未设置过 有什么想法吗 预更新代码正在运行 并将状态和实体值正确设置为所需值 但是 当查看生成的 sql 时 nhibernate 不会在更新查询中包含该字段
  • 我无法使用 iTextSharp 将“Page X of Y”等内容插入到我的 PDF 页脚中

    我是 iTextSharp 的新手 遇到以下情况 我正在创建一个包含页眉和页脚的 PDF 对于页眉和页脚的创建 我正在使用扩展的类 PdfPageEventHelper我已经覆盖了OnStartPage 和OnEndPage 方法 效果很好
  • 如何使用 PHP、MySql 借助 json 验证 Android 中的用户登录凭据

    我是安卓开发新手 我想使用 php mysql 和 json 进行登录验证 我只负责 PHP MySql 和 json 部分 如果用户在android应用程序中输入用户名和密码 那么它需要使用PHP和Mysql检查用户表 并且只需要使用js
  • MySQL根据最新时间戳选择记录组

    我有一个每隔几个小时运行一次的例程 它在用于记录的表中创建多个条目 我需要做的是选择所有最新的记录时间戳具有共同的帐户 ID 像这样的东西 SELECT FROM TABLE logs WHERE ACCOUNT ID 12345 ORDE
  • MYSQL/PHP 查找与给定项目关联的最常见项目

    我有数千个用户生成的物品愿望清单 桌子是这样的 collectionId itemdId user id 123 2345 1 123 3465 1 123 876 1 lt 123 567 1 123 980 1 lt 777 980 2
  • TypeScript 错误:重复的标识符“LibraryManagedAttributes”

    编译失败 moonholdings io node modules types react dom node modules types react index d ts 2312 14 重复的标识符 LibraryManagedAttri
  • 安装 mediapipe 库后 cv2 不起作用

    我想使用 python 制作 handtracker 程序 但教程告诉我安装 mediapipe 库 然后我安装了它 之前使用cv2传输我的相机是可以的 但是安装mediapipe之后 cv2不起作用 这里是消息 gt gt gt impo
  • 对已经排序的数组进行快速排序

    在这个问题中 https www quora com What is randomized quicksort 阿莱霍 豪斯纳 Alejo Hausner 说道 最坏情况下快速排序的成本 that 讽刺的是 如果您将快速排序应用于已经排序的
  • 自动生成 .NET 故障转储

    我知道如何使用 ADPlus 或 DebugDiag 生成故障转储文件 但我想知道是否有一种方法可以在客户的计算机上执行此操作而无需安装这些工具 具体来说 我希望能够配置我的应用程序 例如 使用注册表值 在发生严重故障时生成故障转储 更具体
  • 如何删除字符串的一部分?

    假设我有test 23我想删除test 我怎么做 前面的前缀 可以换 我最喜欢的方法是 拆分和弹出 var str test 23 alert str split pop gt 23 var str2 adifferenttest 153
  • 在 Eclipse Android 中导入 JAR (JAudioTagger)

    我正在开发一个加载 mp3 文件的歌曲数据的程序 我正在尝试导入 JAudioTagger 来帮助加载歌曲信息 JAudioTagger 是一个 jar 文件 我进入导入窗口 但面临许多我不确定的导入选项 看起来有三种可行的选择 EJB J
  • 如何创建项目模板

    关于自定义模板的主题 我正在自学如何使用 xcode 7 和 Objective C 来做到这一点 但我陷入了困境 到目前为止 通过阅读 S O 上的其他帖子我通过复制单视图应用程序并将其放入 xcode 包的正确目录中 成功创建了一个自定
  • mocha中的异步函数 before() 总是在 it() 规范之前完成?

    我有一个回调函数before 这是为了清理数据库 一切都在before 保证在之前完成it 开始 before function db collection user remove function res is it guaranteed
  • 如何在R中获得与Stata中相同的AIC和BIC值?

    假设我有一个非常简单的模型 library foreign smoke lt read dta http fmwww bc edu ec p data wooldridge smoke dta smoking reg lt lm cigs
  • 在 C 中如何将函数作为参数传递?

    我想创建一个函数 该函数对一组数据执行通过参数传递的函数 在 C 中如何将函数作为参数传递 宣言 采用函数参数的函数原型如下所示 void func void f int 这表明参数f将是一个指向函数的指针 该函数具有void返回类型并且需
  • 获取最后更新的数据 - Codeigniter

    我在 codeigniter 工作 我有一个方案表 我的问题是我想显示每个方案的最后更新数据 我不知道该怎么做 请帮忙 my table scheme code updated on scheme name 1 2015 04 13 One
  • 使用ejabberd时有没有办法打包msg?

    我正在测试 ejabberd 的 mucroom 测试客户是Tsung 测试条件 一台ejabberd服务器 4核16G RAM 3000 个用户加入 1 个 mucroom 用户1分钟内随机发送一条消息 每个用户发送5条消息 服务器操作系