Websocket “未完成操作“与真机报错 问题

本文讲述了小前端在使用uniapp开发微信小程序时遇到的困境,如后端域名在生产环境的备案问题、模拟器与真机测试的后台报错差异以及websocket在生产环境对wssUrl的特殊要求。作者强调了这些问题对新手开发者的影响和解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于弱小又无助的小前端开发工程师的经历分享:

        在用uniapp开发微信小程序的过程中,需要使用websocket进行数据的传输,在开发过程中没有任何的问题,但是进入生产环境时,真的是三路十八弯,让小前端尝遍了微信小程序和社会满满的恶意。

大坑有如下这么多:

 后端域名需在小程序官网备案问题

         对于没有小程序开发经验的后端人员来说,到微信官网备案域名是很离谱的一件事,而当前端人员、产品也不知道这件事时,是非常痛苦的。希望你们的情况不一样。。。。

 关于微信小程序模拟器和真机测试中,后台报错不一致且离谱至极的问题

真机测试报错:

 

虚拟机测试报错:

        msg:"未完成的操作"。。。。(我真是谢谢你勒)
 

在不知道是啥东西的情况下,微信小程序开发论坛底下找到许多相同的情况,但却没有找到一个明确的解决方法,后面我使用真机与跟后端人员进行链联调,尝试后,才知道,需要后端进行一个跨域配置处理

哦,微信小程序websocket生产环境只支持 wss Url ,开发环境支持 Ws Url

### 解决 javax.websocket 和 ServerEndpoint 导入错误的方法 在 Spring Boot 中集成 WebSocket 功能时,可能会遇到 `javax.websocket` 或 `ServerEndpoint` 的导入问题。以下是可能的原因以及对应的解决方案。 #### 1. 添加必要的 Maven 依赖项 如果项目中缺少 WebSocket 支持的相关依赖,则可能导致无法正常导入类库。可以通过引入以下 Maven 依赖来解决问题: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 此依赖会自动配置 WebSocket 所需的基础环境并提供支持[^1]。 #### 2. 配置 WebSocket 组件 除了添加依赖外,还需要注册 `ServerEndpointExporter` 来启用标准的 Java WebSocket API。可以在项目的配置类中完成如下操作: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } ``` 通过上述代码片段可以确保 WebSocket 的功能被正确加载到应用上下文中。 #### 3. 处理证书异常 (可选) 当尝试连接本地服务器测试 WebSocket 应用程序时,可能会因为 SSL/TLS 设置不匹配而抛出类似于下面这样的异常: ``` java.security.cert.CertificateException: No name matching localhost found ``` 这种情况下需要确认是否启用了 HTTPS 协议或者调整客户端的信任存储设置以接受自签名证书[^2]。 #### 4. 排查第三方 JAR 文件冲突 有时即使已经添加了正确的依赖关系仍然会出现诸如 `NoClassDefFoundError` 这样的运行期错误提示。这通常是因为某些 jar 包之间存在版本兼容性问题所致。例如,在处理 Excel 文档上传过程中就曾报告过类似的案例: ``` Caused by: java.lang.NoClassDefFoundError: org/apache/commons/compress/utils/InputStreamStatistics ``` 针对此类情况建议仔细检查 pom.xml 文件中的所有条目是否存在重复定义或是相互排斥的情况,并考虑升级至最新稳定版组件来规避潜在风险[^3]。 #### 5. 正确编译 META-INF/MANIFEST.MF 文件 最后需要注意的是,在打包阶段也可能由于 MANIFEST.MF 文件未按预期生成而导致各种奇怪的行为发生。具体表现为构建工具报错消息类似这样子: ``` When you imported some 3rd jars and compiled MANIFEST.MF, you may got following compiling error. ``` 因此务必遵循官方文档指南妥善维护好该元数据文件的内容结构以便顺利完成整个流程[^4]。 --- ### 总结 综上所述,要彻底解决 `javax.websocket` 及其关联接口如 `ServerEndpoint` 的导入失败现象可以从以下几个方面入手:一是核查当前工程所使用的 POM 描述符里是否有遗漏关键模块;二是按照实际需求补充相应的初始化逻辑;三是留意网络通信环节的安全策略设定以防干扰正常使用体验;四是审慎对待外部资源引用以免引发不必要的连锁反应;五则是严格把控制品生产过程杜绝低级失误的发生。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值