Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带网袋的瓦丁7_Java_Atmosphere_Vaadin7 - Fatal编程技术网

Java 带网袋的瓦丁7

Java 带网袋的瓦丁7,java,atmosphere,vaadin7,Java,Atmosphere,Vaadin7,我有一个Vaadin7.1.4Web应用程序,它以各种UI结构(表、树)显示后端数据。它处理大量数据,因此是多线程的。它目前正在Tomcat6服务器上运行 我正在寻找一种在我的应用程序中实现WebSocket的方法,以执行一些非常具体的任务。下图以图形方式解释了该任务: 我正在寻找一种方法来做到这一点。请帮我解决以下问题: 我应该使用哪个框架来创建websocket服务器和客户端 是否有可以与vaadin集成的atmosphere java客户端 我可以使用Vaadin的push框架来解决这个

我有一个Vaadin7.1.4Web应用程序,它以各种UI结构(表、树)显示后端数据。它处理大量数据,因此是多线程的。它目前正在Tomcat6服务器上运行

我正在寻找一种在我的应用程序中实现WebSocket的方法,以执行一些非常具体的任务。下图以图形方式解释了该任务:

我正在寻找一种方法来做到这一点。请帮我解决以下问题:

  • 我应该使用哪个框架来创建websocket服务器和客户端
  • 是否有可以与vaadin集成的atmosphere java客户端
  • 我可以使用Vaadin的push框架来解决这个问题吗

  • 我做了我的家庭作业,我发现大气框架(在Vaadin中也使用)是一个亲密的竞争者。但是这些示例处理的是JavaScript客户端而不是Java客户端。

    虽然我熟悉Vaadin 6和7,但我不是WebSocket方面的专家。所以,对我要说的话,恕我直言。但这是

    (a) 您的图形表明您的焦点在客户端(浏览器)。你可能需要改变你的想法。Vaadin的要点是应用程序实际上是在服务器上运行的。虽然我们在概念上认为我们的应用程序在用户面前运行,但我们知道应用程序的状态和执行实际上是在服务器上运行的。我们通常不会考虑在web浏览器中到底发生了什么

    这就是为什么Vaadin如此特别,而不是众多其他web框架项目之一。据我所知,瓦丁在这方面几乎是独一无二的。另一个具有服务器端执行架构(如Vaadin)的web应用套件是(非Java)web版(以前称为Real Studio)

    (b) 似乎你真正想要的是所谓的“推”,而不关心自己的WebSocket细节。解释

    对用户作出反应 通常情况下,Vaadin应用程序会等待响应用户的操作,例如键入字段或单击按钮

    例如,当用户单击浏览器中的按钮时,安装在浏览器端的Vaadin framework会自动通知服务器上运行的Vaadin应用程序该用户的操作。服务器端应用程序然后运行一些附加到按钮的代码。纯Java代码正在服务器上运行。假设该按钮更新字段中的文本。当服务器端代码更新文本值时,Vaadin服务器端框架会自动将新值通知浏览器端Vaadin框架。新值会自动出现在屏幕上,供用户查看

    请注意,作为Vaadin程序员,我们并不关心刚才在上述场景中发生的来回的细节。浏览器-服务器交互可能是通过HTTP请求响应、长轮询、WebSocket或“谁知道是什么”执行的。我们不在乎。Vaadin 7.1碰巧使用作为其实现的一部分,这(通常)与我们无关。这就是瓦丁的力量和特别之处

    推 有时程序员希望在不等待用户采取行动的情况下更新用户看到的显示

    可能在给用户的报告中显示的数据正在更改。程序员可能希望她的应用程序非常流畅,用户无需点击更新按钮即可自动更新报告。这种行为称为“推送”,就像将更新推送到用户屏幕上一样。Vaadin的博客文章解释了Vaadin 7.1的一个主要创新是对push的支持

    在Vaadin 6中,一些人使用附加组件(插件)来获得一些推送功能。但考虑到Vaadin 6在设计时没有考虑到这一点,因此存在一些限制

    专注于推动 因此,WebSocket是获得推送的一种方式,但不是唯一的方式。将注意力集中在“推送”功能上。让Vaadin来担心它是否应该在大气中使用WebSockets或其他技术

    阅读中的章节。这可能就是你开始的全部需要


    作为一名Vaadin程序员,您不必关心WebSocket。但是作为一名系统管理员,您应该对WebSocket感到非常兴奋。这项技术有望极大地提高应用程序的速度、响应能力和健壮性。警告:这项技术是新技术,所以我们还不知道它在现实世界中的表现。考虑到这一承诺以及Vaadin 7.1的可用性,您可能希望使用WebSocket支持启用您的容器

    今年(2013年)定义了由定义的WebSocket协议的标准接口

    Apache创新了JSR的一个实现。该实现已经被后端口到,不支持ApacheTomcat专有WebSocket API,而支持新的JSR-356实现。Tomcat8正处于发布候选阶段,所以您可能想要尝试它,尽管我不知道什么可能对Vaadin7.1最有效

    月食也。Jetty与Tomcat相比非常接近,两者总体上都工作得非常好(尽管我不能谈论它们的WebSocket特性)

    可以提供对WebSocket的支持

    更新:请注意。我刚刚注意到,他(让-弗朗索瓦·阿尔坎德)是这个世界的创造者


    更新2015-10:Servlet容器,如&已经迭代了许多版本,以修复和改进WebSocket。请确保更新到更高版本。与Vaadin一样,许多迭代包括对WebSocket 7.5.8的修复

    回答您的问题:

    我应该使用哪个框架来创建websocket服务器和客户端

    我建议您使用Vaadin 7.1.x,它在发动机罩下使用大气。您也可以直接使用Atmosphere,但我必须说与Vaadin的集成非常好。支持WebSocket的任何地方都可以运行Atmosphere:Vert.x,Play!我和内蒂

    有气氛吗