📔 金山办公产品帮助中心

业务系统是https协议,无法唤起wps客户端

文档由 黄泺璇 于 2023-12-07 09:25 创建,由 黄泺璇 于 2023-12-07 09:25 更新
文档标签:
文档分类:
62

问题描述

业务系统是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加载项和业务系统通讯。

问题现象

db8cd519536d75b419a01bb9b363178.png

问题原因

创建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');
    }

742711495abc923edd9f1cb38e6f637.png