我的网站使用jsp。我想使用webcsocket来促进聊天。我尝试了一个简单的例子来测试它是否有效。我的服务器端点代码如下:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package endpoint;
/**
*
* @author yashs
*/
import javax.websocket.OnMessage;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/echo")
public class MyServerEndPoint {
@OnMessage
public String echo(String message) {
System.out.println("echo:" + message);
return "Echoing " + message;
}
}
客户端代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Login V1</title>
<script type="text/javascript">
function debug(s) {
var d = document.getElementById("debug");
d.innerHTML = d.innerHTML + "<br/>" + s;
}
function sendMessage(msg) {
if (!("WebSocket" in window)) {
debug("Your browser does not support WebSocket.");
return;
}
var uri = "ws://" + document.location.host
+ document.location.pathname + "echo";
var ws = new WebSocket(uri);
ws.onopen = function () {
debug("Connected.");
ws.send("Hello");
};
ws.onmessage = function (evt) {
debug("Received: " + evt.data);
};
ws.onclose = function () {
debug("Connection closed.");
};
}
</script>
</head>
<body>
<a href="javascript:sendMessage()">Send Message</a>
<div id="debug"></div>
</body>
</html>
我的项目名称是handiazza 客户端页面是index.html页面,在netbeans中创建新的Web应用程序时会自动创建该页面。 所以,当我使用
运行我的应用程序时localhost:8084/handiazza/
然后它工作正常。但是,如果我复制相同的客户端代码并粘贴到一个新文件,那么它不起作用。我在谷歌上看到了很多例子,但所有例子都有相同的使用localhost和应用程序名称的机制