【问题标题】:How to incorporate WebSockets into a Cocoa application [closed]如何将 WebSockets 合并到 Cocoa 应用程序中[关闭]
【发布时间】:2010-04-18 21:18:40
【问题描述】:

我正在开发一个涉及聊天元素的 Cocoa 应用程序。我考虑过的一种方法是使用 Websockets 来处理客户端-服务器通信。这将是特别理想的,因为聊天也将显示在网站上,并且使用 Websockets 可以使实现变得非常简单。

那么:是否可以使用 WebView 元素,并在其中使用 Websockets? (我知道 Safari 还不支持 Websockets,所以我想这是不可能的?)

如果没有,是否有任何适用于 C、Objective C 或任何其他语言的 Websocket 客户端库我可以成功嵌入到我的应用程序中?

欢迎提出建议。

【问题讨论】:

    标签: c objective-c cocoa websocket


    【解决方案1】:

    唯一支持最新标准的objective-c WebSocket 库RFC 6455(在撰写本文时)是SocketRocket(免责声明:我是它的作者)。

    Unitt 和 Zimt 的客户端实现都在使用已弃用的协议,似乎没有得到维护。

    【讨论】:

    【解决方案2】:

    这里是objective-c的websockets实现

    http://github.com/esad/zimt

    【讨论】:

    【解决方案3】:

    warmcat 提供了 libwebsocket 作为 C++ Websocket 库的 my question 的答案。

    它支持最新的 -04 和 -05 标准推荐,还通过 SSL 提供加密。 此外,它应该可以在 iOS 设备上运行。

    如果您不介意使用 C 代码,可以使用它,或者您可以为库编写一个 Objective-C 包装器。

    【讨论】:

      【解决方案4】:

      无法让 zimt 或 UnitT 在我的项目中工作,因此我围绕 uiwebview 编写了这个快速包装器,以使用 iOS 4.2 中支持的本机 WebSockets。

      https://github.com/zootreeves/iOS-WebSockets/

      性能足以处理小消息。

      【讨论】:

      • 您在使用 UnitT 时遇到了哪些问题?我很乐意解决任何问题。
      • Josh,我构建了 UnitT 并将 libUnittWebSocketClient.a 导入到我的项目中。然后测试 socket = [[WebSocket alloc] initWithURLString:@"ws://ip:8080/" delegate:self origin:nil protocols:nil tlsSettings:nil verifyAccept:NO]; [插座打开];我收到错误 Open Error Domain=WebSocketErrorDomain Code=0 "The operation could not be completed. Bad handshake" UserInfo=0x16c480 {NSLocalizedFailureReason=Bad handshake} websockets 服务器是 Jetty 8。这是在 iOS 4.2 上。
      • 我想我看到了问题所在。您希望 URL 指向您的 WebSocketServlet。我签入了项目 testws,该项目用于在库中针对 Jetty 8.0.M2 运行单元测试。我的 websocket 指向 url,ws://:8080/testws/ws/test。我的 web.xml 有以下片段:` TestWScom.unitt.testws.TestWebSocketServletTestWS/ws/*`。这能解决问题吗?
      【解决方案5】:

      zimt 似乎不适用于 iOS4 - 自 2010 年 4 月 2 日以来没有进行任何更改..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-21
        • 2011-04-26
        • 2017-09-01
        • 2012-04-18
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 2017-05-30
        相关资源
        最近更新 更多