【问题标题】:Websockets not working with Powerpoint Add-inWebsockets 不适用于 Powerpoint 插件
【发布时间】:2018-10-04 03:55:32
【问题描述】:

我正在为 Powerpoint 使用一个名为 'Web Viewer' 的 Microsoft 插件(它只是一个 iframe,您插入一个 URL,它会在幻灯片中显示它 )。

我插入了一个使用 Socket.IO 的网页,但我发现它无法连接到服务器(即使是长时间轮询它也会退回不工作)。

显然这不是插件的问题:有什么想法吗?

我在 Mac 10.13.4(最新)/Powerpoint(16.12,Office 365 Home)(最新)上进行了测试。

同一网页在最新的 Chrome、Firefox、Safari、IE11 的 iframe 中工作,所以我认为嵌入式 (Webkit) 会出现一些问题> Powerpoint 在 Mac 上使用的浏览器。

一般的请求流程是:

浏览器 -> AWS ALB(启用粘性)-> Nginx -> 节点

更新

进一步研究了这一点,并测试了使用 Socket.IO 的其他页面,我认为它们的设置和这里的唯一区别是 ALB。

即使启用了粘性,也可以清楚地看到负载均衡器(在日志中)在所有 EC2 之间传递流量。这让我相信他们使用的 cookie 要么未设置,要么未随请求一起传递。

【问题讨论】:

    标签: amazon-web-services websocket powerpoint office-addins elastic-load-balancer


    【解决方案1】:

    首先,基于这个github issue应该可以打开一个websocket。

    使用不安全的 ws:// 可能会出现问题。我知道 officejs 拒绝所有对 http:// 的请求,并强制您使用带有安全证书的 https://。所以他们可能会对 WebSockets 做同样的事情,并强制你使用带有有效证书的 wss://。

    您可以使用 Chrome 在 Power Point Online 中更轻松地进行测试。插件是相同的,但您可以在 Devtools 控制台中获得更好的错误日志记录(按 F12)。如果这是一个安全问题,应该有一条错误消息指出它。

    【讨论】:

    • 感谢您的回复。我不认为这是一个安全问题,当我在 Chrome 中打开页面时,我可以看到 Socket.IO 正在使用 wss 与 Websocket 进行协商。即使 Websocket 升级失败,我也很困惑为什么长轮询也不起作用。
    • 根据您的建议,我在Powerpoint Online中进行了测试,通过插件可以顺利打开页面(幸运或不幸)。
    【解决方案2】:

    我遇到了同样的问题,S.Freederle 是正确的。现在我可以通过ngrok 使用socket.io 来创建一个安全隧道(HttpS) 来连接到我的服务器并将数据发送到我在office 插件中的客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多