【问题标题】:Socket Response issue in iOS Socket ProgrammingiOS Socket 编程中的 Socket 响应问题
【发布时间】:2017-01-29 05:37:58
【问题描述】:

我正在开发像客户端/驱动程序这样的应用程序。

在我的应用程序中,我们使用socket programming 来跟踪驱动程序。

为了进行跟踪,Driver 应用会在每 5 秒后使用 socket 发送 location(lat,lng),Client 应用会监听 socket 响应并更新 driver 位置。

这很好用,但我的问题是:-

有时客户端应用程序会得到如下错误响应:-

意味着,单个套接字响应中的一堆响应,我无法处理这个响应。

任何人都可以帮助我为什么会收到这种类型的响应,即使我每次都从驱动程序应用程序发送单个套接字请求?

希望最好。

谢谢。

【问题讨论】:

  • 理想情况下,套接字编程用于广播目的。例如,1 个驱动程序连接到套接字并在其上提供它们的存在,现在您再次在套接字上提供存在而不再次连接。因此,当您获得当前驱动程序列表相同的驱动程序存在 id 时会发生什么,您将获得两次时间。现在我希望你明白什么是问题。
  • @Hasya :- 感谢您的支持。你能告诉我你的存在是什么意思吗?
  • 您的问题是驱动程序 ID“109”在套接字上有多个位置,对吗?
  • @Hasya :- 不,亲爱的.. 用户 ID - 109 每 5 秒发送一个请求。现在客户端在不同的位置多次获得该响应。
  • 是的,因为您的旧请求在套接字广播上可用,因此客户端正在获取多个位置。您必须询问维护套接字的后端开发人员,要求他们检查 109 id 位置是否可用,然后更新该位置并在套接字上发送 1 个单曲或删除以前的一个并发送新的。所以客户只会得到 1 个位置。

标签: ios swift sockets serversocket asyncsocket


【解决方案1】:

基本上socket是用来广播数据的。

发生这种情况,因为您的旧请求在套接字广播上可用,因此客户端正在获取多个位置。您必须询问维护套接字的后端开发人员,要求他们检查 109 id 位置是否可用,然后更新该位置并在套接字上发送 1 个单曲或删除以前的一个并发送新的。所以客户只会得到 1 个位置。

每次要发送位置时,您可以将请求时间设置为 10 秒而不是 5 秒。连接到套接字,发送位置并断开连接。每次都重复这些事情。

iOS 代码方面似乎没有什么问题,主要是你必须在后端维护。

您只需要为此维护适当的架构。

【讨论】:

  • 感谢 Hasya 的支持和帮助。
  • 欢迎您,如果对您有用,请接受我的回答。如果您需要任何进一步的帮助,请与我联系。
猜你喜欢
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2014-10-06
  • 2011-09-02
  • 1970-01-01
相关资源
最近更新 更多