You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tsung对Openfire进行WebSocket负载测试无法创建会话问题咨询

Tsung压测Openfire WebSocket无有效会话的补充配置方案

你当前已完成的WebSocket基础配置如下:

<option name="websocket_path" value="/ws"/>
<option name="websocket_frame" value="text"/>
<option name="websocket_subprotocols" value="xmpp"/>

目前仅能建立WebSocket底层连接、Openfire侧无法生成有效会话,需补充以下配置和逻辑:

  • 校验Openfire侧服务配置匹配度
    • 登录Openfire管理后台,在服务器设置的WebSocket配置页确认服务已启用,注意部分Openfire版本默认WebSocket路径为/websocket而非/ws,路径不匹配会导致连接升级成功但XMPP流无法正常路由
    • 确认Openfire侧配置的允许WebSocket子协议包含xmpp,无额外自定义子协议校验规则
  • 补充XMPP流初始化交互逻辑
    • 不要直接沿用纯TCP压测的会话逻辑,WebSocket连接建立后必须第一时间发送符合规范的XMPP流开场标签,Openfire只有收到合法的流初始化报文才会创建正式会话,标准开场报文格式如下:
      <stream:stream to='[你的Openfire服务域名]' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
      
    • 调整Tsung的帧匹配规则,不要全局固定websocket_frame为text后忽略服务端返回的流响应,需配置对应规则接收Openfire返回的stream特征报文,避免Tsung误判连接无效主动断开
  • 补全会话建立的必要交互流程
    • 若Openfire开启了SASL鉴权、资源绑定要求,流初始化完成后需按XMPP协议顺序完成SASL握手、资源绑定、会话确认的报文交互,仅完成WebSocket握手升级不会生成持久有效会话
    • 若压测场景不需要鉴权,可在Openfire后台临时关闭匿名登录限制,允许匿名用户直接建立会话
  • 调整Tsung脚本的协议类型配置
    • 不要将脚本类型设为纯tcp,需调整为支持XMPP协议栈的类型,或在会话阶段手动指定报文解析规则为XMPP,否则Tsung不会按XMPP规范组装报文,Openfire无法识别载荷内容就不会生成有效会话

内容的提问来源于stack exchange,提问作者HimS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 09:51:30