首页 > 解决方案 > Excel JS 加载项通过 websockets 与 localhost 通信

问题描述

我们正在尝试从 Excel 365 插件 (Javascript) 中与我们使用 websockets 用 C++/Qt 编写的应用程序进行通信。该应用程序在本地计算机上运行,​​并作为具有自签名证书的安全 websockets 服务器运行。

我可以建立从 Edge 或 Chrome 到我们本地应用程序的 websockets 连接,但无法从 Excel 加载项建立一个。是否有阻止 Excel / Office JS 加载项连接到 localhost / 127.0.0.1 的安全策略或类似策略?

它似乎类似于 Edge 中的“允许本地主机环回”设置,所以我想知道 Office 是否强制执行该设置以提高安全性。如果是这样,它可以被禁用吗?

编辑:

下面是简单的测试代码:

if ("WebSocket" in window) {
        console.log("WebSocket is supported by your Browser!");

        // Let us open a web socket
        var ws = new WebSocket("wss://localhost:8080");

        ws.onopen = function () {

            // Web Socket is connected, send data using send()
            ws.send("Message to send");
            console.log("Message is sent...");
        };

        ws.onmessage = function (evt) {
            var received_msg = evt.data;
            console.log("Message is received...");
            console.log(received_msg);
        };

        ws.onclose = function () {

            // websocket is closed.
            console.log("Connection is closed...");
        };
    } else {

        // The browser doesn't support WebSocket
        console.log("WebSocket NOT supported by your Browser!");
    }

我确实在日志中收到了成功消息:“您的浏览器支持 WebSocket!”

标签: javascriptexceloffice365

解决方案


推荐阅读