Eclipse创建WebSocket

要求:Tomcat必须7.0以上,创建Dynamic web project

1.前台代码
index.html
注意:把js文件引一下,或者用百度的




	
		
		
		webSocket页面

		
		
	
	

	
		
		
		
		

2.后台代码
在src创建class
我的是 com.fcy.service
MsgWebSocket.java

package com.fcy.service;

import java.io.IOException;
import java.util.concurrent.CopyOnWriteArraySet;

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
/**
 * webSocket的服务端:负责接收所有浏览器的消息,并负责转发
 * @author fansds
 *
 */
@ServerEndpoint(value="/MsgWebSocket")
public class MsgWebSocket {
		//当每一个连接来的时候都会实例化一个MsgWebSocket
		private static CopyOnWriteArraySet webSockets =new CopyOnWriteArraySet<>();
		//与任何一个客户端的连接都有会话
		private Session session;
		@OnOpen
		public void onOpen(Session session) {
			this.session=session;
			webSockets.add(this);
			sendMsgToOthers("有新用户上线");
		}
		@OnClose
		public void onClose(Session session) {
			this.session=session;
			webSockets.remove(this);
		}
		//给其他所有用户发送消息,不给自己发
		private void sendMsgToOthers(String message) {
			for(MsgWebSocket item:webSockets) {
				System.out.println(this.session);
				//不给自己发送(谁发的消息,就不给谁转发)
				if (this.session.getBasicRemote().equals(item.session.getBasicRemote())) {
					continue;
				}
				//封装一个给每个session发送消息的方法
				item.sendMessage(message);
			}
		}
		private void sendMessage(String message) {
			
			try {
				this.session.getBasicRemote().sendText(message);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		/*
		 * 当服务器接收到消息的时候,做消息转发
		 */
		@OnMessage
		public void onMessage(String message,Session session) {
				System.out.println("来自客户端的消息:"+message);
				//当有消息来临时,给除去自己外的所有人发送消息
				sendMsgToOthers(message);
		}
}

3.启动Tomcat测试效果图
打开两个页面进行交互,互发信息
Eclipse创建WebSocket_第1张图片
总结:WebSocket 是一种网络通信协议。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
websocket的属性及方法:
Eclipse创建WebSocket_第2张图片
Eclipse创建WebSocket_第3张图片

Eclipse创建WebSocket_第4张图片

写的不好,仅供参考。欢迎大神指点

你可能感兴趣的:(java,解决方法)