做网站颜色黑色代码多少钱,企业网站建设费用价格,做网站官网好处,域名申请阿里云1、服务端
代码分为两部分#xff1a;
一个是服务器终端类#xff1a;用java注解来监听连接ServerEndpoint、连接成功OnOpen、连接失败OnClose、收到消息等状态OnMessage
import org.springframework.stereotype.Component;import javax.websocket.*;
import javax.websoc…1、服务端
代码分为两部分
一个是服务器终端类用java注解来监听连接ServerEndpoint、连接成功OnOpen、连接失败OnClose、收到消息等状态OnMessage
import org.springframework.stereotype.Component;import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;Component
ServerEndpoint(/websocket/fqa)
public class QwenWebSocket {OnOpenpublic void onOpen(Session session){System.out.println(WebSocket opened: session.getId());}OnMessagepublic void onMessage(String message, Session session){System.out.println(Message received: message);try{session.getBasicRemote().sendText(Echo: message);}catch (IOException e){e.printStackTrace();}}OnClosepublic void onClose(Session session){System.out.println(WebSocket closed: session.getId());}OnErrorpublic void onError(Throwable t){t.printStackTrace();}
}一个是websocket的配置类用于把spring中的ServerEndpointExporter对象注入进来
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;Configuration
public class WebSocketConfig {/*** 这个bean的注册,用于扫描带有ServerEndpoint的注解成为websocket,如果你使用外置的tomcat就不需要该配置文件*/Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}2、客户端
普通的java工程即可不需要是spring。
import javax.websocket.*;
import java.net.URI;ClientEndpoint
public class MyWebSocketClient {OnOpenpublic void onOpen(Session session){System.out.println(Connected to server);}OnMessagepublic void onMessage(String message){System.out.println(Received message: message);}OnClosepublic void onClose(CloseReason reason){System.out.println(Closing: reason.getReasonPhrase());}public static void main(String[] args) {try{WebSocketContainer container ContainerProvider.getWebSocketContainer();URI uri URI.create(ws://localhost:8080/websocket/fqa);Session session container.connectToServer(MyWebSocketClient.class, uri);session.getBasicRemote().sendText(Im client!);Thread.sleep(10000);}catch(Exception e){e.printStackTrace();}}
}3、效果
客户端显示
Connected to server Received message: Echo: Im client! 服务端显示
WebSocket opened: 4 Message received: Im client! WebSocket closed: 4