react-stomp仅在React Native调试模式下生效问题求助
react-stomp仅调试模式正常工作的排查方案
检查生产环境端点配置与跨域
确认STAMP_URL在生产环境的指向地址是否正确,后端是否配置了正确的CORS策略。调试模式下本地代理可能自动解决了跨域问题,但生产环境需要后端明确允许跨域请求。添加错误回调捕获异常
当前代码缺少错误处理逻辑,无法定位连接失败原因。修改代码添加连接失败、断开回调,手动关闭调试模式复现问题:
import SockJsClient from 'react-stomp'; <View> <SockJsClient url={STAMP_URL} topics={stamp_topic} onMessage={onMessageReceive} onConnectFailure={(err) => console.error('连接失败:', err)} onDisconnect={() => console.log('连接断开')} debug={false} /> </View>
排查打包压缩的影响
部分打包工具的压缩规则可能混淆react-stomp或sockjs-client的代码,导致运行时异常。检查Webpack/Vite等打包配置,将这两个库加入压缩排除列表。验证主题格式合规性
确认stamp_topic是否符合STOMP规范,需为字符串或字符串数组(如['/topic/notify'])。生产环境后端可能对主题格式要求更严格,调试模式下可能兼容宽松格式。检查服务器WebSocket支持
生产环境服务器或反向代理(如Nginx)可能未启用WebSocket转发规则,导致SockJS无法正常建立连接。调试模式下本地服务器默认支持WebSocket相关配置,不会出现此类问题。
内容的提问来源于stack exchange,提问作者Ajay Pandey
相关产品推荐
相关产品推荐

