带有 WebServer 的 Objective-C 套接字

Posted

技术标签:

【中文标题】带有 WebServer 的 Objective-C 套接字【英文标题】:Objective-C Sockets with WebServer 【发布时间】:2014-04-11 17:29:06 【问题描述】:

我正在开发一个需要将数据从一个用户发送到另一个用户的 ios 应用程序。目前,我正在使用与 php 文件的 HTTP 连接将数据保存在 mysql 数据库中。然后将从接收用户那里下载,该用户使用拉取(我认为这就是所谓的)来检查新数据。 但这很慢而且效率不高。 我一直在研究套接字,但我真的不知道从哪里开始。我有一个应该处理通信的 Web 服务器,但我不知道我是否总是需要数据库,因为有时用户同时在线并且可能能够在彼此之间发送信息而不将其保存在数据库? 也许有人知道从哪里开始以及要考虑什么。会很有帮助!

非常感谢你:) 安东

【问题讨论】:

【参考方案1】:

我使用CoreWebSocket!。到目前为止还不错。最重要的是,我发现它很容易理解。这可能是一个不错的起点。

我也知道SocketRocket。我被告知实际上更好。但是我已经使用 CoreWebSocket 有一段时间了,它对我来说工作得很好。

两者都有很好的记录。所以我认为这些将是一个很好的起点。如果您还需要什么,请告诉我。

这只是套接字。我还有一个基于“始终在线”的应用程序。用户始终在线的地方。好消息是,从你只建立一次连接的意义上说,套接字是持久的。为此,您需要某种轮流服务器来确定谁在线以及他们的连接凭据。连接后,您可以在它们之间无缝发送接收数据,而无需中间服务器。

如果您需要了解用户发送和接收的内容,那么最好在两者之间设置一个服务器,其中数据首先发送到服务器,然后转发给相应的用户。

上面的库有一些关于它们如何工作的文档,因此您可以在选择其中一个使用之前使用它来确定某种架构。

祝你好运!

编辑:老实说,套接字用于(在我看来)实时连接。因此,如果您想为游戏或类似的东西发送和接收控件。这个想法是您不需要每次要发送数据时都建立新的连接。您建立一次连接,您可以发送和接收,直到它关闭。这是您正在尝试制作的那种应用程序吗?

【讨论】:

非常感谢 :) 我看看我能走多远!我只是不明白如果一个用户例如在另一个用户向他发送数据时没有互联网,它将如何工作。至少它必须保存在数据库中,对吗?在这种情况下,套接字是否有帮助? 当然,如果用户没有互联网,那么没有。但是,这是您可以做的。如果他们没有互联网,则不会建立套接字连接。然后,您可以在 ios 设备上记下没有发送任何内容。因此,在您下次尝试时,您也可以发送上一个事件的所有数据。您需要服务器的原因是这些用户需要找到彼此的方法。所以必须有某种中介。一个回合服务器。您可以查看一些非常基本的 NodeJS 服务器。 谢谢 :) 是的,这就是我想要的。这就像一个聊天应用程序,他们基本上可以在其中进行交流。我会调查一下谢谢你:))) 你说他们有据可查?它只是他们 github 页面上的文档还是还有更多内容?因为我找不到合适的地方开始编码。 你用的是哪一个?套接字火箭?还是 CoreWebSocket?

以上是关于带有 WebServer 的 Objective-C 套接字的主要内容,如果未能解决你的问题,请参考以下文章

带有objective-c ++的Firebreath项目

如何发送带有 HTTP HEADERS 的 PUT 请求和带有 Objective-C 的 FILE?

Swift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突

是啥导致了带有强化 xcodebuild(Objective-C)的未知属性属性“类”?

Objective-C 检查带有 int 的数组是不是包含 int [关闭]

带有objective-c的opencv和c++ [关闭]