pom.xml (虽然配置了maven tomcat7插件,但是直接从maven中启动web服务,websocket服务启动不了。要将web服务部署到tomcat7 server上。可以直接打包war,也可以在开发工具中引入tomcat7)


    4.0.0
    web
    web
    war
    1.0-SNAPSHOT
    web Maven Webapp
    http://maven.apache.org
    
        
            javax.websocket
            javax.websocket-api
            1.1
            provided
        
    
    
        web

        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.1
                
                    8077
                    /web
                    UTF-8
                    web
                    tomcat7
                
            
        
    

websocket.server.SimpleServer

package websocket.server;

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.logging.Logger;

/**
 * Created by Administrator on 2016/4/17.
 */
@ServerEndpoint("/SimpleWebSocket")
public class SimpleServer {

    private Logger logger = Logger.getLogger(this.getClass().getName());

    @OnOpen
    public void onOpen(Session session){
        logger.info("websocket open ... ");
        System.out.println(session);
    }

    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose(){
        logger.info("websocket close .... ");
    }

    @OnError
    public void onError(Throwable e){
        logger.severe("error~~~~"+e.getMessage());
    }

    /**
     * 收到客户端消息后调用的方法
     * @param message 客户端发送过来的消息
     * @param session 可选的参数
     */
    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        logger.info("receive the message from client ["+message+"]");

        session.getBasicRemote().sendText("服务器收到客户端的信息:"+message);
    }
}

simple.html




    Testing websockets



    
    


    var webSocket =  new WebSocket('ws://localhost:8077/web/SimpleWebSocket');

    webSocket.onerror = function(event) {
        console.log("error ... ");
        console.log(event.data);
    };

    webSocket.onopen = function(event) {
        console.log("open ... ");
        console.log(event.data)
    };

    webSocket.onmessage = function(event) {
        console.log("[message]:"+event.data);
    };

    var btn = document.getElementById("button");
    var input = document.getElementById("input");
    btn.onclick = function(){
        var value = input.value;
        webSocket.send(value);
        input.value="";
    };