业务系统是https协议,无法唤起wps客户端,控制台报错:Failed to construct'WebSocket':The URL's scheme must be either 'ws' or 'wss' ,'https' is not allowed. 备注:客户采用的sdk版本是1.0.33版本,sdk支持采用WebSocket协议与wps本地服务通信。wps本地服务用于支持wps加载项和业务系统通讯。
创建WebSocket时,需要使用ws或者wss协议,不能使用https协议,需要将https协议转换为wss协议。但是 wps sdk(指:wpsjsrpcsdk.js 或者 wps_sdk.js)中只有ws 和 http 相互替换的方法,缺少https 和 wss相互替换的方法,
修改wps sdk中transferWebsocketToHttp 和 transferHttpToWebsocket ,增加https 和 wss 相互替换的方法。复制以下代码,替换sdk中的transferWebsocketToHttp 和 transferHttpToWebsocket方法。
/** * ws、http互相替换链接 新增了wss、https相互替换链接 2023-12-07 * @param {*} url 请求链接 * @returns */ function transferWebsocketToHttp(url) { return url.replace('ws://', 'http://').replace(':58892', ':58890').replace( 'wss://','https://').replace(':58893',':58891'); } function transferHttpToWebsocket(url) { return url.replace('http://', 'ws://').replace(':58890', ':58892').replace('https://', 'wss://').replace(':58891',':58893'); }
问题描述
业务系统是https协议,无法唤起wps客户端,控制台报错:Failed to construct'WebSocket':The URL's scheme must be either 'ws' or 'wss' ,'https' is not allowed.
备注:客户采用的sdk版本是1.0.33版本,sdk支持采用WebSocket协议与wps本地服务通信。wps本地服务用于支持wps加载项和业务系统通讯。
问题现象
问题原因
创建WebSocket时,需要使用ws或者wss协议,不能使用https协议,需要将https协议转换为wss协议。但是 wps sdk(指:wpsjsrpcsdk.js 或者 wps_sdk.js)中只有ws 和 http 相互替换的方法,缺少https 和 wss相互替换的方法,
解决方法
修改wps sdk中transferWebsocketToHttp 和 transferHttpToWebsocket ,增加https 和 wss 相互替换的方法。复制以下代码,替换sdk中的transferWebsocketToHttp 和 transferHttpToWebsocket方法。
/** * ws、http互相替换链接 新增了wss、https相互替换链接 2023-12-07 * @param {*} url 请求链接 * @returns */ function transferWebsocketToHttp(url) { return url.replace('ws://', 'http://').replace(':58892', ':58890').replace( 'wss://','https://').replace(':58893',':58891'); } function transferHttpToWebsocket(url) { return url.replace('http://', 'ws://').replace(':58890', ':58892').replace('https://', 'wss://').replace(':58891',':58893'); }
📋 章节目录
问题描述 问题现象 问题原因 解决方法