这本质上是Can not add account for custom Sonos service的副本,但没有可接受的答案,我无法添加评论以询问他们是否解决了他们的问题。
我继承了一个项目并正在尝试添加开发服务。我已经通过 /customsd.htm 对其进行了配置,将标头策略设置为 Session ID,让安全和不安全的端点都工作。
当我去添加频道时,我看到了对 strings.xml 的请求。但是,我从来没有看到任何请求进入 getSessionId。同时 SONOS 报告“未找到帐户。***** 服务器未识别您的登录信息。” 我可以使用 SoapUI 发出请求,并且得到有效响应。
如果值得一提,我在 SONOS 的 beta 程序中,并且在 6.2 版本中,构建 31926010(Mac 桌面应用程序)。
更新:
虽然我不确定这里有什么有用的,但查看日志[deviceIP]:1400/support/aggregate
,我看到以下内容。请注意,编辑后的 URL 和 IP 确实可以解析。IP 用于负载均衡器,URL 在它后面。
Feb 28 11:07:42 Sonos[84168] <![CDATA[<]]>Error<![CDATA[>]]>: (SCLib) dns(1): [redacted URL] -<![CDATA[>]]> [redacted IP]
Feb 28 11:07:42 Sonos[84168] <![CDATA[<]]>Error<![CDATA[>]]>: (SCLib) control_client(1): getSessionId failed, res = 1000, tvStart = 1456679262 s 250163 us, m_tvConnectDone = 1456679282 s 250162 us, m_tvDone = 1456679302 s 250162 us, tvNow = 1456679262 s 509982 us
Feb 28 11:07:42 Sonos[84168] <![CDATA[<]]>Error<![CDATA[>]]>: (SCLib) soap(1): - param username = [redacted username]
更新#2:
我通过 Wireshark 检查了数据包,生产服务和开发服务的行为似乎相同,除了生产服务,控制器/我的计算机在服务器挂断之前启动了对 Sonos 的 POST 请求。所附图像中以红色标出的该过程不会发生在海关服务中。
我还尝试在 customd 配置中使用生产服务端点,但该请求以同样的方式失败。FWIW,所有 ssl_validation 测试都通过了,各种内容测试也是如此。