【问题标题】:How to trigger js event with Java?如何用Java触发js事件?
【发布时间】:2015-12-17 09:07:06
【问题描述】:

我正在构建一个 java 聊天网络应用程序。(一个项目中的服务器和客户端)

跟随是我的条件

  • Springframework 4.2.3
  • JSP
  • 从动态 Web 项目转换而来的 Maven 项目
  • 无法使用 node.js

所以我脑海中的用户场景是

  1. 用户输入一些文本并按发送
  2. Ajax 调用将消息传递到服务器
  3. 服务器检查当前连接的用户(可能来自 Session)
  4. 服务器调用其他用户脚本追加新消息

我对第 4 步感到很困惑。 Java会不会调用DOM事件触发器?

客户端如何从服务器获取新的消息事件?

谢谢。 :D

附: 如今,大多数聊天服务器都是事件驱动的。是否可以使用 Java 构建事件驱动的聊天服务器?

【问题讨论】:

  • 为什么不回火一个json并在ajax成功时触发一个事件?

标签: javascript java maven chat eventtrigger


【解决方案1】:

您的解决方案就像没有可供您使用的 WebSocket 技术一样形成。实施 WebSocket 是为了解决实时消息传递问题。它将消息推送到目的地。

但是,如果坚持你的方法,那么遵循是有意义的。 您需要某个地方来保存传入的消息,例如数据库或 session.setAttribute [坏主意]。然后在客户端机器上使用一些 ajax 调用循环来请求来自服务器的新传入消息。 由于来自多个用户的大量 GET 请求传入,您的服务器可能会变慢。

你在后文中的最后一个问题:是的,我在我的项目中使用了 tomcat websocket api.jar。 apache.org 上有写得很好的文档

正如我所提到的,如果您的用户不使用旧的 Internet Explorer 浏览器,请学习 WebSocket。上面有很多教程...

【讨论】:

  • 谢谢。这就是我好奇的地方。如果你不介意,我想多提一个问题。我找到了 socket.io Java 实现,但是大多数示例都使用 apache websocket。为什么人们使用 apache websocket 多于 socket.io?(我正在尝试使用 socket.io maven jar,因为我有使用 node.js 聊天服务器的经验,但是我无法预知如何将这种技术应用于我的 java 服务器-客户端网络应用程序)
  • 另外,如果不打扰您,我想延迟选择答案。我仍然期待一些实现示例。
  • 是的,socket.io 比 websocket 更先进。它建立在 websocket 之上。已经为开发人员编写了许多功能,但这已成为另一个问题。您的问题是关于在消息进入时触发事件。
  • 有一个socket.io社区github.com/socketio/socket.io/tree/master/examples/chat代表的例子
  • 我也没有体验过socket.jar,但这个链接应该有帮助:stackoverflow.com/questions/15568700/…
猜你喜欢
  • 1970-01-01
  • 2013-06-04
  • 2011-12-03
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 2020-12-13
  • 1970-01-01
  • 2013-03-14
相关资源
最近更新 更多