java websocket消息推送

来源:互联网 发布:昆明域服务器优化 编辑:程序博客网 时间:2024/05/20 05:27

简单的客户端JavaScript

<!DOCTYPE html><html><head><title>Testing websockets</title></head><body>  <div>    <input type="submit" value="Start" onclick="start()" />  </div>  <div id="messages"></div>  <script type="text/javascript">    var webSocket =      new WebSocket('ws://localhost:8080/wesocket/websocketTest');    webSocket.onerror = function(event) {      onError(event)    };     webSocket.onopen = function(event) {      onOpen(event)    };     webSocket.onmessage = function(event) {      onMessage(event)    };     function onMessage(event) {      document.getElementById('messages').innerHTML        += '<br />' + event.data;    }     function onOpen(event) {      document.getElementById('messages').innerHTML        = 'Connection established';    }     function onError(event) {      alert(event.data);    }     function start() {      webSocket.send('hello');      return false;    }  </script></body></html>



服务端

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 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.tony</groupId>    <artifactId>wesocket</artifactId>    <version>0.0.1-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>javax.websocket</groupId>            <artifactId>javax.websocket-api</artifactId>            <version>1.0-rc5</version>            <scope>provided</scope>        </dependency>    </dependencies></project>





原创粉丝点击