【发布时间】:2015-10-03 18:49:42
【问题描述】:
我目前正在开发一个半简单的聊天应用程序。我希望用户能够在私人聊天中与另一个人交流。只会发送纯文本。目前我的系统从网页调用php脚本,传入参数,然后解析返回的数据。我有它以便客户端发送消息,该消息调用我的网络服务器上的发送消息脚本,然后该脚本在网络服务器上创建一个消息文件,然后将成功或失败返回给客户端。然后,为了让客户端查看此消息,它必须调用一个脚本来检查服务器的消息文件,其中包含给他的消息。如果找到,它会发回消息,如果没有,它会发送一个关于没有消息的响应。
这种技术非常有效,除了客户端要么必须手动刷新以检查他是否有消息,要么后台线程必须每隔几秒刷新一次。这很好,但是如果用户在移动网络上,那将使用数据。更不用说后台循环以方便的速度刷新时会提取的资源类型。
所以,我决定了第二个想法,这将是一个用 Java 编程的服务器,它将通过套接字进行通信。用户将通过套接字将消息作为数据包发送,服务器将检查该消息要发送给谁。如果此人在线,它会将消息传递给该用户。然而,这种方法需要客户端和服务器之间的持续连接,这是不可靠的,因为如果用户在车里并且数据中断了怎么办。或者其他一些连接被切断的情况。然后它会抛出错误并必须重新连接。
无论如何,我的问题是哪种技术更好。还是他们俩都很可怕?如果是这样,这样做的正确方法是什么?提前致谢。
【问题讨论】:
-
首先,什么是半简单?是不是很复杂?您确实意识到 HTTP 是基于套接字的协议,对吧?
-
你有没有考虑过使用GCM?那将是一个非常有效的简单解决方案。我们每个主要的聊天应用程序都使用 GCM 或类似的东西。
标签: java php android client-server chat