java实现websocket_java代码实现websocket前后端交互package socketTest;
import java.util.Set;
import javax.websocket.Endpoint;
import javax.websocket.server.ServerApplicationConfig;
import javax.websocket.server.ServerEndpointConfig;
/**
* 1, webSocket 的配置类, 需要实现接⼝ ServerApplicationConfig
* 2, webSocket 类在扫描到之后根据需要在实现的⽅法中进⾏⼀定的过滤, 返回过滤后的才能被前端访问
* 3, getAnnotatedEndpointClasses 基于注解的 webSocket 扫描⽅法
* 4, getEndpointConfigs 基于 XML 配置⽂件的的 webSocket 扫描⽅法
*/
public class MyWbeSocketConfig implements ServerApplicationConfig {
public Set> getAnnotatedEndpointClasses(Set> webSockets) {
return webSockets;
}
public Set getEndpointConfigs(Set> arg0) {
return null;
}
}
package socketTest;
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;
websocket和socket/**
* 1, WebSocket可以通过注解的⽅式声明 @ServerEndpoint("/WebSocket")
* 2, 添加注解之后需要在配置⽂件中返回, 在配置⽂件中可以过滤
* 3, WebSocket 和 Servlet 相同都是多列的, 不会互相⼲扰
* 4, WebSocket 请求时访问 open ⽅法, 可以⽤注解 @OnOpen 标明
* 5, WebSocket 关闭时访问 close ⽅法, 可以⽤注解 @OnClose 表名
*/
@ServerEndpoint("/WebSocket")
public class WebSocketDemo {
@OnOpen
public void open(Session session) {
String id = Id();
System.out.println("通道 " + id + " 打开");
}
@OnClose
public void close (Session session) {
String id = Id();
try {
System.out.println("客户端" + id + "关闭失败");
}
}
@OnMessage
public void message(Session session, String msg) {
String outMessade = "客户端 " + Id() + " 说:" + msg; System.out.println(outMessade);
String returnMessage = "你刚才说:" + msg;
try {
} catch (IOException e) {
System.out.println("返回数据失败");
}
}
}
//html代码
WebSocket
/**
* 创建 WebSocKet 的⽅法
*/
function createWebSocket(urlValue){
if("WebSocket" in window){
return new WebSocket(urlValue);
}
if ("MozWebSocket" in window){
return new MozWebSocket(urlValue);
}
console.log("浏览器不⽀持 WebSocKet");
}
/**
* 1, 创建WebSocket
* 2, WebScoket 的地址为ws协议
*/
var webSocket = null;
var urlValue = "ws://localhost:8080/socket/WebSocket"; $('#CreateSocket').on('click', function(){
webSocket = createWebSocket(urlValue);
// 服务器返回数据时执⾏
console.log(msg.data);
}
// 请求关闭时执⾏
console.log(arguments);
}
});
$('#Send').on('click', function(){
console.log("进⼊发送--------")
var message = $('#Message').val().trim();
console.log("进⼊发送内容--------"+message);
if(message == ""){
<("发送的内容不能为空!");
return;
}
if(webSocket == null){
请求路径
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论