1. 程式人生 > >SpringBoot是使用socket註解式

SpringBoot是使用socket註解式

var ws = null; var url = null; var transports = []; function setConnected(connected) { document.getElementById('connect').disabled = connected; document.getElementById('disconnect').disabled = !connected; document.getElementById('echo').disabled = !connected; } //修改url,提供了兩種url一種是wbsocket的一種是sockjs的
function updateUrl(urlPath) { //如果連結中有sockjs欄位就讓連結等於傳進來的本身 if (urlPath.indexOf('sockjs') != -1) { url = urlPath; } else { if (window.location.protocol == 'http:') { url = 'ws://' + window.location.host + urlPath; } else { url = 'wss://'
+ window.location.host + urlPath; } } } //連結握手 function connect() { if (!url) { alert('選擇一個url'); return; } //判斷連結中是否有sockjs,如果有使用sockjs的方式拼連結,如果沒有傳送ws連結 if(url.indexOf('sockjs') != -1){ //new SockJS(url, _reserved, options);預設三個引數,中間的基本不用,最後一個是sockjs提供的傳輸功能,引數是陣列(預設是全部開啟)
ws =new SockJS(url); }else{ ws= new WebSocket(url); } //開啟連結 ws.onopen = function () { setConnected(true); log('訊息: 連結已開啟'); }; //獲取訊息 ws.onmessage = function (event) { //呼叫下面的現實資訊的方法 log('推送的訊息: ' + event.data); }; //關閉連結 ws.onclose = function (event) { setConnected(false); //呼叫下面的現實資訊的方法 log('訊息: 連結已關閉'); log(event); }; } //傳送訊息 function echo() { if (ws != null) { //獲取到輸入框中的訊息 var message = document.getElementById('message').value; //呼叫下面的現實資訊的方法 log('傳送: ' + message); ws.send(message); } else { alert('訊息沒有連結地址,請重新連線'); } } //將傳輸回來的資訊顯示在右側 function log(message) { var console = document.getElementById('console'); var p = document.createElement('p'); p.style.wordWrap = 'break-word'; p.appendChild(document.createTextNode(message)); console.appendChild(p); //防止訊息過長幹div外面去 while (console.childNodes.length > 25) { console.removeChild(console.firstChild); } //console.scrollTop = console.scrollHeight; } //關閉連結的時候將ws連結清空 function disconnect() { if (ws != null) { ws.close(); ws = null; } setConnected(false); }