java - 聊天应用程序如何与其服务器通信?

标签 java php android client-server chat

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

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

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

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

最佳答案

AngularJsAjax 将是您的完美解决方案,尝试学习

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

关于java - 聊天应用程序如何与其服务器通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31418387/

相关文章:

php - 从 Web 表单插入 PDO

php - 将 xampp 从 maria db 10.1 更新到 10.2

java - 在 A JPanel 上绘制的网格不完全可见

java - 如何解决logcat错误?

java - ResourceBundle 的变量查找参数?

php - 二维数组不显示数据

java - Java中两个状态机之间的通信

java - ListView:删除项目之间的空格,并限制 ListView 中的项目数量

android - 我们如何将三星银河皮肤添加到安卓模拟器中?

java - 每 5 秒调用一个函数