websocket备忘

来源:互联网 发布:大逆之门txt知白下载 编辑:程序博客网 时间:2024/05/19 17:56

websocket备忘

这里用注释来编写java后台代码:
EndPoint类的编写:
package learn;

import java.io.IOException;import javax.websocket.CloseReason;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.RemoteEndpoint;import javax.websocket.SendHandler;import javax.websocket.SendResult;import javax.websocket.Session;import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/testwebsocket")public class WebSocketLearn {    @OnOpen    public void myOnOpen(Session session) {        System.out.println("WebSocket opened: " + session.getId());        try {            session.getBasicRemote().sendText("hello !");        } catch (IOException e) {            System.out.println(e);        }    }    @OnMessage    public void myOnMessage(Session session, String txt) {        RemoteEndpoint.Async asyncRemote = session.getAsyncRemote();        System.out.println("WebSocket received message: " + txt);        asyncRemote.sendText(txt, new SendHandler() {            @Override            public void onResult(SendResult sendResult) {                System.out.println("**** is ok ? :" + sendResult.isOK());            }        });    }    @OnClose    public void myOnClose(CloseReason reason) {        System.out.println("Closing a WebSocket due to " + reason.getReasonPhrase());    }    @OnError    public void myOnError(Session session, Throwable throwable) {    }}

ServerApplicationConfig类的编写:

package learn;import java.util.HashSet;import java.util.Set;import javax.websocket.Endpoint;import javax.websocket.server.ServerApplicationConfig;import javax.websocket.server.ServerEndpointConfig;public class WebSocketConfig implements ServerApplicationConfig {    @Override    public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scanned) {        return scanned;    }    @Override    public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> endpointClasses) {        return (new HashSet<ServerEndpointConfig>());    }}

index.jsp的编写

<%@page pageEncoding="utf-8"%><html><body>    <h2>Hello World!</h2>    <script type="text/javascript">        if (window.WebSocket != undefined) {            var connection = new WebSocket('ws://192.168.1.32:8086/testwebsocket');            connection.onopen = function(event) {                console.log('*** opened ***');                console.log(event);            }            connection.onmessage = function(msgEvent) {                console.log(msgEvent);                connection.send('from browser !');            }            connection.onclose = function(closeEvent) {                console.log(closeEvent);            }            connection.onerror = function() {            }        } else {            //如果浏览器不支持websocket            console.log('****************** your browser don\'t support websocket ! ******************');        }    </script></body></html>

测试直接将两个java放到web应用的java包中,然后访问index.jsp即可。该测试可高速来回发送消息,然后触发4个方法。

0 0
原创粉丝点击