【问题标题】:Cross-platform device messaging for iOS?iOS 的跨平台设备消息传递?
【发布时间】:2014-09-27 18:00:12
【问题描述】:

我试图弄清楚如何通过 iOS 应用程序将事件通知发送到路由器和防火墙后面的 linux 盒子。现在,我的计划是使用像 Socket.IO 这样的服务,但他们似乎没有 iOS SDK。所以,我的问题是:

  1. 是否可以在不使用第三方服务(如 Socket.IO 或 Firebase)的情况下完成此操作(将消息从 iOS 设备传递到在我家局域网内的机器上运行的 node.js 应用程序)?
  2. 如果不是,什么服务能够代理 iOS 设备和 linux box 之间的通信? (理想的情况是同时具有 iOS SDK 和官方支持的节点包)。

【问题讨论】:

  • 你必须弄清楚你的两个设备将如何相互连接。如果您的 Linux 服务器位于防火墙后面,并且您没有在防火墙上打任何孔以便通过防火墙直接连接到它,那么您将无法入站连接到它。服务器必须出站连接到某些东西。我个人不知道您是否可以从服务器直接连接到 IOS 设备(我对此表示怀疑),这就是为什么像这样的许多问题都使用云中的服务器(公共可访问)并且两个设备都连接到它。
  • 我认为您的首要任务是在寻找可以帮助您的特定库之前弄清楚一般的连接架构。 socket.io 只是一个服务器和客户端库 - 它没有第三方代理服务。
  • 哎呀,我说的是 socket.io,我的意思是 pusher.com。德普。

标签: ios sockets socket.io


【解决方案1】:

是的,所以这是一个愚蠢的问题。

这里真正的问题是我需要将其分解为一些更易于理解的子任务。因此,我没有尝试解决“将事件从移动设备推送到 LAN/防火墙后面的盒子”,而是解决了:

  1. 让 LAN 后面的盒子订阅来自公共 Internet 上某处的事件通知。在这种情况下,我正在为 linux 机器构建一个节点客户端应用程序,该应用程序使用 websockets 穿透防火墙并打开到我服务器上端点的连接并接收事件。
  2. 可以将事件从 iOS 应用程序推送到公共互联网。如果我有一个 REST API 托管在我的应用可以调用的某个地方,这很容易实现,无需额外的库。
  3. 第三部分很容易弄清楚:我需要在某个地方有一个“服务器”应用程序,它公开一个我的 iOS 应用程序可以与之通信的 REST API,然后通过 websocket 将事件推送到 linux 盒子。所以我可能只是要抛出一个最小的 Express 应用程序,它可以代理从电话到套接字的 API 调用,反之亦然。轰隆隆。

【讨论】:

  • 您可以接受自己的答案来结束这个问题。
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 2012-06-03
  • 2016-09-22
相关资源
最近更新 更多