本地主机上的 Apache Tomcat websockets 实现

Posted

技术标签:

【中文标题】本地主机上的 Apache Tomcat websockets 实现【英文标题】:Apache Tomcat websockets implementation on localhost 【发布时间】:2014-03-14 08:12:57 【问题描述】:

我正在尝试学习 websocket。尝试了在 apache tomcat 7 websockets 示例上给出的一些示例 -> 'http://tomcat.apache.org/tomcat-7.0-doc/web-socket-howto.html'。我已经完成了客​​户端代码。有一个服务器端的问题,它是用 java servlet 编写的。我尝试使用 eclipse 和 Apache Tomcat 7.0.52 在我的本地主机上运行这些示例。 谁能帮我提供一些服务器代码的教程和示例。

这是一个简单的回显服务器的客户端代码:

var wsUri = "ws://echo.websocket.org/"; 
var output; 

function init()  
output = document.getElementById("output");
$('‪#‎send‬').click(function()
doSend("ja ghari");
);
testWebSocket();  

function testWebSocket() 
websocket = new WebSocket(wsUri); 
websocket.onopen = function(evt)  onOpen(evt);;
websocket.onclose = function(evt)  onClose(evt) ;; 
websocket.onmessage = function(evt)  onMessage(evt) ;; 
websocket.onerror = function(evt)  onError(evt) ;;  

function onOpen(evt)  
writeToScreen("CONNECTED"); 
doSend("WebSocket rocks");
 

function onClose(evt)  
writeToScreen("DISCONNECTED");  

function onMessage(evt)  
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>'); 
 

function onError(evt)  
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);  

function doSend(message)  
writeToScreen("SENT: " + message); 
websocket.send(message);  

function writeToScreen(message)  
var pre = document.createElement("p"); pre.style.wordWrap = "break-word"; 
pre.innerHTML = message; output.appendChild(pre);  

window.addEventListener("load", init, false); 

现在我需要为此在 java 中编写服务器端代码 我需要一个使用 websockets 与我的客户端通信的服务器

Apache Tomcat 7 或更高版本是必须的,服务器端代码用java编写。 提前致谢。

【问题讨论】:

如果您说出您希望服务器端代码使用哪种语言,然后适当地标记问题,您更有可能得到答案 我需要使用 java servlet 用 java 编写它。抱歉没有提到它 【参考方案1】:

Apache Tomcat 7 附带了一个示例 WebSocket 回显实现。

Client side code Server side code using annotations Server side code without annotations

您不会将服务器端编写为 Servlet。您需要实现一个 WebSocket 端点。 Tomcat 将处理管道以将请求路由到端点。

【讨论】:

嘿,是的,我有 tomcat 示例的完整文档。我需要为回显服务器编写类似的代码。你能指导我如何解决它。我需要一个使用 websocket 与我的客户端通信的服务器。 @Padfoot 我已经为您提供了 EchoServer 的两种不同服务器实现的源代码。您还在寻找什么? 是的,我试过那些它每次都会给我一个错误“Websocket连接关闭错误代码1006” @Padfoot 我遇到了完全相同的问题。你解决了吗? @TheThom 这里是一个可以帮助你的教程playjava.wordpress.com/2013/07/11/…

以上是关于本地主机上的 Apache Tomcat websockets 实现的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 应用程序在本地主机上运行,​​但在外部 Tomcat 上返回 404

本地主机上的 Apache 虚拟主机

如何在本地主机上运行 Apache Wild Card 脚本?

j2ee - 有关本地主机上 Tomcat 服务器所需端口号的错误 [重复]

无法在 WSL Ubuntu 20.04.3 LTS(焦点)中使用本地主机上的 Ansible 模块服务启动 Apache2

在本地主机上的 Apache 中将根文件夹设置为子文件夹,这也将在生产服务器上工作