【问题标题】:How does a chat app communicate with it's server?聊天应用程序如何与其服务器通信?
【发布时间】:2015-10-03 18:49:42
【问题描述】:

我目前正在开发一个半简单的聊天应用程序。我希望用户能够在私人聊天中与另一个人交流。只会发送纯文本。目前我的系统从网页调用php脚本,传入参数,然后解析返回的数据。我有它以便客户端发送消息,该消息调用我的网络服务器上的发送消息脚本,然后该脚本在网络服务器上创建一个消息文件,然后将成功或失败返回给客户端。然后,为了让客户端查看此消息,它必须调用一个脚本来检查服务器的消息文件,其中包含给他的消息。如果找到,它会发回消息,如果没有,它会发送一个关于没有消息的响应。

这种技术非常有效,除了客户端要么必须手动刷新以检查他是否有消息,要么后台线程必须每隔几秒刷新一次。这很好,但是如果用户在移动网络上,那将使用数据。更不用说后台循环以方便的速度刷新时会提取的资源类型。

所以,我决定了第二个想法,这将是一个用 Java 编程的服务器,它将通过套接字进行通信。用户将通过套接字将消息作为数据包发送,服务器将检查该消息要发送给谁。如果此人在线,它会将消息传递给该用户。然而,这种方法需要客户端和服务器之间的持续连接,这是不可靠的,因为如果用户在车里并且数据中断了怎么办。或者其他一些连接被切断的情况。然后它会抛出错误并必须重新连接。

无论如何,我的问题是哪种技术更好。还是他们俩都很可怕?如果是这样,这样做的正确方法是什么?提前致谢。

【问题讨论】:

  • 首先,什么是半简单?是不是很复杂?您确实意识到 HTTP 是基于套接字的协议,对吧?
  • 你有没有考虑过使用GCM?那将是一个非常有效的简单解决方案。我们每个主要的聊天应用程序都使用 GCM 或类似的东西。

标签: java php android client-server chat


【解决方案1】:

AngularJs 和 Ajax 将是您的完美解决方案,尝试学习

对于真正的实时消息使用 AngularJs

【讨论】:

  • 感谢您的建议。我会检查出来的!
【解决方案2】:

如果数据量非常少……比如说每天 20-25 条消息……你可以在你的服务器上使用 REST API 来传输实际的短信和谷歌云消息来推送通知……最近我采用了这种方法为我的一位朋友开发私人聊天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2021-11-26
    相关资源
    最近更新 更多