Websocket:Starscream“目前不支持屏蔽和rsv数据”

时间:2016-01-08 12:13:08

标签: ios websocket

我正在开发一个需要与Web套接字服务器连接的iOS应用程序。

我可以成功连接到服务器但是当我发送请求时,它会断开连接。

我正在使用Starscream库来处理网络套接字。

根据服务器支持团队:   它不支持协议压缩,但在下面的标题中,它们要求我们“渗透 - 缩小”。我们接受未压缩的消息就好了(它只是数据包上的一个标志)但是由于它们要求的扩展,我们发出的消息将被设置为压缩标记。

我使用Swift发送请求如下

let dict = ["Parameter1":"value1","Parameter2":"value2"]

do {

                let data = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions(rawValue: 0))
                var jsonString: String = String(data: data, encoding: UInt())!
                self.socket.writeString(jsonString);
            } catch {
                print(error)
            }

它与服务器断开连接并打印以下消息。

“websocket断开连接:可选(”当前不支持屏蔽和rsv数据“)”

2 个答案:

答案 0 :(得分:1)

服务器支持团队的意思是来自WebSocket客户端应用程序的请求包含如下所示的HTTP标头。

AddIn_control1 = New AddIn_control
AddIn_taskpane = Me.CustomTaskPanes.add(AddIn_control1, "Add-in taskpane", Me.Application.ActiveWindow)

因此,如果您的应用程序有如下所示的行,请将其删除。

Sec-WebSocket-Extensions: permessage-deflate

答案 1 :(得分:0)

如果服务器无论出于何种原因都不接受传入的连接,或者服务器刚刚崩溃,也可能引发此错误。 基本上,当发生这种情况时,最好的办法是检查服务器上正在发生什么,因为您可能会浪费时间尝试改进客户端代码(这发生在我身上:)