基于Java的WebSocket推送

WebSocket的主动推送

关于消息推送,现在的解决方案如轮询、长连接或者短连接,当然还有其他的一些技术框架,有的是客户端直接去服务端拿数据。
其实推送推送主要讲的是一个推的概念,WebSocket是一种主动推送消息的技术。

基于Java的WebSocket

这里主要是结合网上的例子实现下。

简单的客户端JavaScript




Testing websockets


  

服务端

package com.tony.websocket;

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

@ServerEndpoint("/websocketTest")
public class WebSocketTest {
    @OnMessage
    public void onMessage(String message, Session session) throws IOException, InterruptedException {

        // 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 < 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");
    }
}

pom.xml 文件


    4.0.0
    com.tony
    wesocket
    0.0.1-SNAPSHOT
    
        
            javax.websocket
            javax.websocket-api
            1.0-rc5
            provided
        
    

我这里用的是JDK是 jdk1.8.0_60 ,Tomcat用的是 apache-tomcat-7.0.64
1、建立连接
基于Java的WebSocket推送_第1张图片
2、发送消息
基于Java的WebSocket推送_第2张图片
3、服务端推送消息
基于Java的WebSocket推送_第3张图片

基于Java的WebSocket推送_第4张图片

你可能感兴趣的:(基于Java的WebSocket推送)