Java中的WebSocket编程:客户机-服务器通信问题
我正在尝试使用JavaWeb应用程序实现简单的WebSocket程序 但是,无法在客户端和服务器之间建立通信 有人能帮我吗 Web服务器:Tomcat 客户端代码:jsp/javascripJava中的WebSocket编程:客户机-服务器通信问题,java,websocket,Java,Websocket,我正在尝试使用JavaWeb应用程序实现简单的WebSocket程序 但是,无法在客户端和服务器之间建立通信 有人能帮我吗 Web服务器:Tomcat 客户端代码:jsp/javascrip <body> <div> <input type="text" value="" id="message" /> <br /> <input type="submit" value="Start" onclick="start()
<body>
<div>
<input type="text" value="" id="message" /> <br /> <input
type="submit" value="Start" onclick="start()" />
</div>
<div id="messages"></div>
<script type="text/javascript">
var webSocket;
var uri = 'ws://' + window.location.host + '/ZebraHosting/testwebsocket';
alert('ur url is ' + uri);
function connect() {
if ('WebSocket' in window) {
alert('I am in Websocket in window');
websocket = new WebSocket(uri);
} else if ('MozWebSocket' in window) {
websocket = new MozWebSocket(uri);
alert('I am in MozWebsocket in window');
} else {
alert('WebSocket is not supported by this browser.');
return;
}
webSocket.onerror = function(event) {
alert('I am onerror');
onError(event);
};
webSocket.onopen = function(event) {
alert('I am onopen');
onOpen(event);
};
webSocket.onmessage = function(event) {
alert('I am onmessage');
onMessage(event);
};
webSocket.onclose = function(event) {
alert('I am onclose');
onClose(event);
};
}
function onMessage(event) {
document.getElementById('messages').innerHTML += '<br />'
+ event.data;
}
function onOpen(event) {
alert("function onOpen " );
document.getElementById('messages').innerHTML = 'Connection established';
}
function onError(event) {
alert("Error ocurred " );
}
function start() {
alert("function start " );
webSocket.send(document.getElementById('message').value);
return false;
}
function onClose(event) {
alert("function onClose" );
document.getElementById('messages').innerHTML = 'Connection closed';
}
connect();
</script>
您的代码中有输入错误:您创建
WebSocket
对象并将其分配给variableWebSocket
,但后来使用variableWebSocket您的代码中有输入错误:您创建WebSocket
对象并将其分配给variableWebSocket
但后来使用variablewebSocket
我认为服务器端类缺少@ApplicationScoped注释
参见本教程我认为服务器端类缺少@ApplicationScoped注释
请参阅本教程那么客户端和服务器上打印了哪些日志?@wero目前没有日志,我认为在“函数开始()”之后没有任何效果。我明天将向您发布一个工作示例(如果尚未解决)。@Gero是的,我们仍在处理它。那么客户端和服务器上打印了哪些日志?@wero目前没有日志,我认为之后没有任何效果“function start()”明天我将向您发布一个工作示例(如果尚未解决)@Gero是的,我们仍在处理它。感谢您的捕获,但仍然没有输出。我还有一个问题是,服务器类是普通Java类。在这种情况下,我是否每次都需要部署war文件?因为我目前正在做的只是从eclipse执行上面的jsp页面。通过更新打字错误webSocket-->webSocket,程序可以正确运行。谢谢对于catch,但仍然没有输出。我还有一个问题,服务器类是普通Java类。在这种情况下,我是否每次都需要部署war文件?因为我当前正在执行eclipse中的上述jsp页面。通过更新Typo webSocket-->webSocket,程序可以正确运行。感谢详细的代码,让我尝试并测试。在任何情况下都会反馈[PASS/FAIL]hi Ivan,通过更新打字错误webSocket-->webSocket,程序会正确运行。感谢详细的代码,让我尝试测试。在任何情况下都会反馈[PASS/FAIL]hi Ivan,通过更新打字错误webSocket-->webSocket,程序会正确运行。
import java.io.IOException;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/testwebsocket")
public class WebSocketTest {
@OnMessage
public void onMessage(String message, Session session) throws IOException, InterruptedException {
// Print the client message for testing purposes
System.out.println("Received: " + message);
// Send the first message to the client
session.getBasicRemote().sendText("replay from server for :" + message);
}
@OnOpen
public void onOpen() {
System.out.println("Client connected");
}
@OnClose
public void onClose() {
System.out.println("Connection closed");
}}