【问题标题】:Livecode - Make client automatically reconnect on lost connectionLivecode - 使客户端在丢失连接时自动重新连接
【发布时间】:2020-12-10 14:08:44
【问题描述】:

我的服务器上运行了一个小程序来控制一些功能。我想做的是创建一个移动应用程序,以便在客户端/服务器模式下控制该程序。我不能做的是在断开连接的情况下处理客户端的自动重新连接。

有什么建议吗?

非常感谢。

【问题讨论】:

  • 我遗漏了很多信息。首先,我缺少代码。您需要发布不能按照您希望的方式工作的代码,如果您这样做并且如果您告诉我它没有做什么您希望它做的事情,我会告诉您如何纠正它。我也不知道您是否希望服务器或客户端自动重新连接,我不知道您是否遇到了无明显原因的不活动的套接字问题(套接字似乎打开但服务器没有不再响应)或者您正在处理不稳定的网络(套接字已关闭,需要重新打开)。 1/2
  • 您可以使用及时发送消息检查openSockets,但如果您遇到的问题不是网络不稳定,这可能不起作用。 2/2
  • 首先,在移动设备上,除非您的应用程序由于功率限制而确实需要它,否则不要不断地为网络供电,这一点很重要。其次,您几乎可以/不应该相信连接已启动并正在运行。您应该检查每个网络事务的结果,如果失败,您可能需要重新连接。但正如@Mark 所说,没有更多信息很难提供帮助。

标签: server client livecode


【解决方案1】:

我不知道这是否真的适合你,但这是 LiveCode 开发人员通常检查活动套接字的方式之一:

on checkSocks theSocket
  if theSocket is among the lines of the openSockets then
    send "checkSocks theSocket" to me in 5 secs
  else
    beep
    answer error "Socket" && theSock && "is unavailable."
  end if
end checkSocks

使用要检查的套接字作为参数调用此命令。

【讨论】:

    【解决方案2】:

    套接字关闭时捕获消息

    on socketClosed theID
      --Do your reconection stuff
    end socketClosed
    

    为了进一步控制,您也可以捕获套接字错误

    on socketError theID, theError
      answer error "There is a problem with the connection." \
         with "Debugging Info" or "Cancel"
      if it is "Debugging Info" then answer information theError
      close socket theID
    end socketError
    

    代码 sn-p 取自 LC Help Api

    【讨论】:

      猜你喜欢
      • 2015-07-21
      • 2020-09-05
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 2018-02-27
      相关资源
      最近更新 更多