如何部署Tomcat的示例WebSocket应用程序?

5
我正在尝试理解如何部署Apache Tomcat 7 WebSocket How-To页面中提到的示例。应用程序开发部分建议阅读WebSocketServlet类的javadoc。但是查看示例的服务器端代码,这三个示例中没有一个类extend WebSocketServlet,这不是我期望的。
我在十多年后回归servlet开发,并对这些示例中的所有注释感到相当迷失。是否有另一个How-To以逐步简单的说明来获取使用servlet的WebSocket并运行?

1
你看到这个问题了吗?http://stackoverflow.com/questions/22568238/running-chat-xhtml-example-returns-info-websocket-closed - Kanagavelu Sugumar
2个回答

10

当您下载 Apache Tomcat 的发行版(目前最新版本为 7.0.37),您将已经部署了examples Web 应用程序。它附带了WebSocket 示例。您不需要自己部署它。

启动 Tomcat 并打开 http://localhost:8080/examples

Apache Tomcat Examples

点击WebSocket示例,选择您想要的任何WebSocket示例。

Apache Tomcat WebSocket Examples

您只需使用bin/catalina.sh run(或任何适合您的命令)启动Tomcat,无需执行其他操作。

当您查看[TOMCAT_HOME]/webapps/examples目录时,可能需要查看WEB-INF/web.xml,其中显示了WebSocket servlets的部署情况。

他们的源代码位于[TOMCAT_HOME]/WEB-INF/classes/websocket目录中。

servlet websocket.echo.EchoMessage确实扩展了org.apache.catalina.websocket.WebSocketServlet

我想知道您使用的Apache Tomcat版本是否正确? 也许您使用的是某个不太新的版本? 我建议从最新版本开始,因为它对我很好用。


哦,我根本没有安装Tomcat :) 我只是在看代码,我正在使用非默认的嵌入式Tomcat,但我还不太理解它。我稍后会尝试这个,但这正是我想要的,所以我会接受这个答案。谢谢。 - Miserable Variable
很高兴你喜欢它。我应该问一下版本和来源的问题。谢谢你鼓励我尝试WebSocket示例。我已经考虑了很长时间! - Jacek Laskowski
我已经在多个地方看到了这个例子和HTML,我希望安装Tomcat能够帮助我理解服务器端。 - Miserable Variable
@Jacek Laskowski 我在websocket/chat.xhtml中收到了“Info: WebSocket closed.”的消息,请问如何解决? - Kanagavelu Sugumar
抱歉,我没有太多WebSocket的经验来回答你的问题。 - Jacek Laskowski
@KanagaveluSugumar:这是在示例中设置的“超时时间”。默认情况下,它设置为“20秒”,因此如果您的客户端保持空闲状态超过指定的阈值,您将失去连接。 - CᴴᴀZ

-1

启动Tomcat并转到URL

/examples/websocket/echo.xhtml

选择两个选项之一:注释或编程API 将WebSocket的URL更改为

/examples/websocket/echo.xhtml

不要使用默认值,它在 . 中。


我总是在websocket/chat.xhtml收到类似“信息:WebSocket已关闭”的消息。如何解决? - Kanagavelu Sugumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接