webSocket 入门demo

java:

package webSocket;


import javax.websocket.OnClose;

import javax.websocket.OnMessage;

import javax.websocket.OnOpen;

import javax.websocket.Session;

import javax.websocket.server.PathParam;

import javax.websocket.server.ServerEndpoint;


@ServerEndpoint("/websocket/{user}")

public class WebSocketTest {


@OnMessage

public void onMessage(String message, Session session,@PathParam(value = "user")String user){

try {

System.err.println("session.getRequestParameterMap()>>"+session.getRequestParameterMap());

System.err.println("user>>>>>>>>>>>>>>>>"+user);

// Print the client message for testing purposes

System.out.println("Received: " + message);


// Send the first message to the client

session.getBasicRemote().sendText("This is the first server message");


// Send 3 messages to the client every 5 seconds

int sentMessages = 0;

while (sentMessages < 30) {

Thread.sleep(5000);

session.getBasicRemote().sendText("This is an intermediate server message. Count: " + sentMessages++);

}


// Send a final message to the client

session.getBasicRemote().sendText("This is the last server message");

} catch (Exception e) {

e.printStackTrace();

}

}

@OnOpen

public void onOpen() {

System.out.println("Client connected");

}


@OnClose

public void onClose() {

System.out.println("Connection closed");

}

}


备注:

1、上面这种方式类似于servlet,不需要main方法, 只需要url中写明就可以访问到

2、上面中的引入类我这里是tomcat7提供的,而不是java7 引入的

 

新建一个html页面,从前端发送请求

  1. <!DOCTYPE html>  

  2. <html>  

  3. <head>  

  4. <title>Testing websockets</title>  

  5. </head>  

  6. <body>  

  7.     <div>  

  8.         <input type="submit" value="Start" onclick="start()" />  

  9.     </div>  

  10.     <div id="messages"></div>  

  11.     <script type="text/javascript">  

  12.         var webSocket =  new WebSocket('ws://localhost:8080/a/websocket');  

  13.   

  14.         webSocket.onerror = function(event) {  

  15.             onError(event)  

  16.         };  

  17.   

  18.         webSocket.onopen = function(event) {  

  19.             onOpen(event)  

  20.         };  

  21.   

  22.         webSocket.onmessage = function(event) {  

  23.             onMessage(event)  

  24.         };  

  25.   

  26.         function onMessage(event) {  

  27.             document.getElementById('messages').innerHTML   

  28.                 += '<br />' + event.data;  

  29.         }  

  30.   

  31.         function onOpen(event) {  

  32.             document.getElementById('messages').innerHTML   

  33.                 = 'Connection established';  

  34.         }  

  35.   

  36.         function onError(event) {  

  37.             alert(event.data);  

  38.             alert("error");  

  39.         }  

  40.   

  41.         function start() {  

  42.             webSocket.send('hello');  

  43.             return false;  

  44.         }  

  45.     </script>  

  46. </body>  

  47. </html>  


IE是要在IE10才支持,websocket是  HTML5的一个新特性。

你可能感兴趣的:(html5,websocket)