您的位置:首页 > 编程语言 > Java开发

spring4 集成WebSocket

2017-05-09 19:38 295 查看
首先创建接收消息器

public class MarcoHandler extends AbstractWebSocketHandler {

private Logger log = LoggerFactory.getLogger(MarcoHandler.class);

@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
log.info(message.getPayload());
System.out.println(message.getPayload());
Thread.sleep(2000);
session.sendMessage(new TextMessage("Polo!"));
}
}

websock配置文件
.withSockJS() 启用SockJS

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(marcoHandler(), "/marco").withSockJS();
}

@Bean
public MarcoHandler marcoHandler(){
return new MarcoHandler();
}
}
客户端 js

因为使用的SockJS 所以需要引用SockJS.js

<script src="http://cdn.bootcss.com/sockjs-client/1.1.4/sockjs.min.js"></script>
<script type="text/javascript">
//原生的WebSocket调用方式
//var url = 'ws://'+window.location.host+'/spittr/marco';
//var sock = new WebSocket(url);

var url = 'marco';
var sock = new SockJS(url);

sock.onopen = function(){
console.log('Opening');
sayMaro();
}

sock.onmessage= function(e){
console.log('Received message:',e.data);
setTimeout(function(){
sayMaro();
},2000);
}

sock.onclose = function(){
console.log('Closing');
}

function sayMaro(){
console.log('ending Marco!');
sock.send("坏蛋!");
}

</script>


这就OK了,太粗浅了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  websocket spring