java中的接口是类吗
275
2022-11-04
用spring boot提供websocket后台
websocket,提供客户端与服务器之间交流的双工协议(见拙作《WebSocket》),使用spring boot,可以很方便地提供websocket的服务器端。
主要是标上几个注解。
主体代码:mySocket.java
import javax.websocket.*;import javax.websocket.server.ServerEndpoint;import java.io.IOException;import java.util.concurrent.CopyOnWriteArraySet;@ServerEndpoint("/ws")@Componentpublic class CaptureSocket { private final static Logger LOGGER = LoggerFactory.getLogger(CaptureSocket.class); private static CopyOnWriteArraySet
配置文件:mySocketConfig.java
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndpointExporter;@Configurationpublic class CaptureSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter(){ return new ServerEndpointExporter(); }}
这个配置文件无须显示调用,系统会自动解释。究其原因,应该是标注“@configuration”起了作用。
此配置文件的作用,从代码来看,是为了配合解释服务器端点用的?,主体代码mySocket.java里有个标注:@ServerEndpoint("/ws")
相应的客户端代码有:
var ws;function wsconnect() { var ws = new WebSocket("ws://192.168.0.98:8085/ws");//最后一个ws应该就是EndPoint ws.onopen = function(evt) { console.log("Connection open ..."); ws.send("hello socket!"); }; ws.onmessage = function(evt) { console.log("receive message: " + evt.data + ":" + (new Date())); }; ws.onclose = function(evt) { console.log("Connection closed.Reconnect will be attempted in 1 second.", evt.reason); setTimeout(function() { ws = wsconnect(); }, 1000); }; ws.onerror = function(err) { console.error('Socket encountered error: ', err.message, 'Closing socket'); ws.close(); }; return ws;}$(function(){ ws = wsconnect();});
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~