您的位置:首页 > 其它

websocket

2015-11-27 11:46 225 查看

服务端

WebsocketTest.java

[code] package com.ws.test;

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;

@ServerEndpoint("/websocket")
public class WebSocketTest {
    @OnMessage
    public void onMessage(String message, Session session)throws IOException, InterruptedException {
       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 < 3){
      Thread.sleep(5000);
      session.getBasicRemote().
    sendText("This is an intermediate server message. Count: "
      + sentMessages);
      sentMessages++;
    }
    // Send a final message to the client
    session.getBasicRemote().sendText("This is the last server message");
      }
    @OnOpen
      public void onOpen() {
    System.out.println("Client connected");
      }

      @OnClose
      public void onClose() {
    System.out.println("Connection closed");
      }
 }


客户端

index.jsp

[code]<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <div>
        <input type="submit" value="Start" onclick="oprate(23,111)" />
    </div>
    <div id="messages"></div>
    <script type="text/javascript">
        function json2str(o) {
            var arr = [];
            var fmt = function(s) {
                if (typeof s == 'object' && s != null)
                    return json2str(s);
                return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
            }
            for ( var i in o)
                arr.push("'" + i + "':" + fmt(o[i]));
            return '{' + arr.join(',') + '}';
        };
        function WebSocketTest(keyid, openid) {
            if ("WebSocket" in window) {
                var count = 0;
                var ws = new WebSocket('ws://localhost:8080/websocket/websocket');
                ws.onopen = function() {
                    var obj = {
                        deviceMessage : {
                            "value" : keyid,
                            "command" : "ir"
                            "userid" : openid,
                            "time" : new Date().getTime(),
                        }
                    };
                    ws.send(json2str(obj));
                };
                ws.onmessage = function(evt) {
                    var received_msg = evt.data;//alert("Message is received..." + received_msg);
                };
            } else {
                //DO
            }
        };

        function oprate(keyid, openid) {
            WebSocketTest(keyid, openid);
        }

    </script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: