【问题标题】:Use websocket for iOS app without Node.js? [duplicate]在没有 Node.js 的情况下为 iOS 应用程序使用 websocket? [复制]
【发布时间】:2017-12-20 02:53:43
【问题描述】:

我最近发现了 websockets,它似乎是让客户端(在我的例子中是 iOS 应用程序)实时接收新数据的最佳选择。

我是一个相对较新的 Swift 开发人员,所以我对 websockets、Node.js 或 JavaScript 一无所知,这三件事在使用 Socket.IO 时似乎很重要。

看到像我这样的 JavaScript 菜鸟在线上的资源绝对为零,这令人沮丧。我找到的所有教程都只演示了如何在 Node.js 中的某种 localhost 服务器中设置聊天室。

最接近我正在寻找的教程是this Appcoda tutorial,但即使是那个也只演示了如何让您的客户端与另一个本地主机服务器通信。

有人可以向我解释如何在实际服务器(我使用 PHP 检索和存储数据的同一台服务器)上配置 Web 套接字,或者这不可能吗?

也欢迎提供一些关于如何设置实际服务器-客户端连接的更好资源,而不是这些模糊的本地主机演示。

【问题讨论】:

  • 读得更好,他在谈论 Swift...
  • 您的要求有点难以理解。如果你想在服务器上建立传入的 webSocket 连接,你可以选择一个服务器端开发环境(PHP、nodejs、Java,无论你喜欢什么),然后你会找到一个在该环境中工作的 webSocket 服务器库。然后,您按照该库的开发人员说明,了解如何设置传入的 webSocket 服务器。 webSocket 是一种标准协议。您可以将 webSocket 客户端连接到任何支持标准 webSocket 协议的服务器端平台。 webSockets 没有任何特定于 node.js 的内容。
  • @jfriend00 这就是我的假设,这就是为什么我很惊讶地看到每个 Web 套接字教程都有 20 多段关于如何设置 Node.js 的段落。我要问的是如何在服务器端设置网络套接字。就我而言,我习惯于用 PHP 编写服务器端代码(即使我不是原生 PHP 程序员),所以理想情况下,我正在寻找一种在我的服务器上用 PHP 配置 Web 套接字的方法。我还发现在客户端你应该建立一个与 URL(包括端口号)的连接,所以我几乎正在弄清楚如何获得这样的工作 URL。
  • 所以,去找一个 PHP 的 webSocket 库并按照它的说明进行操作。这不是火箭科学。这是一个:socketo.me。 9 小时前对您的问题的第一条评论显示了另一个。这实际上只是您使用 Google 并进行一些阅读以找到您正在寻找的内容,然后可能会问一个更具体的问题,即您在使用特定库实施解决方案时遇到的问题。
  • 另外,您是否没有意识到 node.js 是服务器端的。它只是一个基于 Javascript 的服务器环境,而不是基于 PHP 的服务器环境。

标签: javascript ios node.js swift socket.io


【解决方案1】:

首先,看看一个适合 Swift 的 WebSocket 客户端:

https://github.com/daltoniam/Starscream

https://github.com/tidwall/SwiftWebSocket

然后,看看如何根据您的需要正确使用 websockets。 Nodejs 不是一个裸服务器,并且有通过 websockets 或通过 websockets 处理事件的特色解决方案:

https://deepstream.io/

http://socketcluster.io/

阅读这些解决方案的文档和教程,而不是互联网上的普通初学者教程,例如HTTP Authentification Tutorial

也看看SSE活动,也许你会发现它们更有吸引力?这里有一个实际的比较:

http://streamdata.io/blog/push-sse-vs-websockets/

【讨论】:

  • SwiftWebSocket 是否需要 Node.js?我查看了文档,在提供的示例代码中,创建了一个 WebSocket 对象,并使用以 wss:// 开头的 URL 对其进行了初始化。如果我要使用这个 API,我必须提供什么 URL 才能初始化 WebSocket 对象?在所有上述 Web 套接字客户端(例如 Socket.IO 和 Starscream)中,Web 套接字对象都使用一个类似于 http://localhost:8000 的 localhost URL 进行初始化,该 URL 是使用 Node.js 创建的,但 @987654331 是什么意思? @ SwiftWebSocket 中的 URL 引用到?
  • Websockets 是一种协议,它不需要 NodeJS 专门在后端工作。尽管如此,nodejs 仍然受到 npm 包的大型库的支持。
猜你喜欢
  • 1970-01-01
  • 2012-06-08
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多