頁面引用 <script src="~/Scripts/reconnecting-websocket.min.js"></script>
使用示例:
function initSocket(option) { //服務器地址 var locate = window.location; var url = option.url ? option.url : "ws://" + locate.hostname + ":" + locate.port + _get_basepath() + "/websocket"; //回調函數 var callback = option.callback; if (typeof callback !== "function") { console.log('callback 必須為函數'); return false; } //一些對瀏覽器的兼容已經在插件里面完成 var websocket = new ReconnectingWebSocket(url); //var websocket = new WebSocket(url); //連接發生錯誤的回調方法 websocket.onerror = function () { console.log("websocket.error"); }; //連接成功建立的回調方法 websocket.onopen = function (event) { console.log("onopen"); var param = { id: $("#UserID").val(), name: $("#UserName").val(), act: "produceNewUser", msg: "" } websocket.send(JSON.stringify(param)); } //接收到消息的回調方法 websocket.onmessage = function (event) { callback(event.data); } //連接關閉的回調方法 websocket.onclose = function () { websocket.close(); console.log("websocket.onclose"); } //監聽窗口關閉事件,當窗口關閉時,主動去關閉websocket連接,防止連接還沒斷開就關閉窗口,server端會拋異常。 window.onbeforeunload = function () { websocket.close(); } return websocket; } $(function () { var option = { url: $("#socketAddress").val(), callback: function (data) { console.log(data); //處理業務邏輯 var a = $.parseJSON(data); if (a.code != 10) { return; } var b = $.parseJSON(a.content); var html = ''; html += ('<tr class="tableCont bgcWhite bgcHover">'); html += ('<td class="lef2 serial">' + b.ProduceSort + '</td>'); html += ('<td class="mid">' + b.Color + '</td><td>' + b.WidthCloth + '</td><td>' + b.Weight + '</td><td>' + b.RollLength + '</td><td>' + b.Number + '</td>'); html += ('<td class="mid">' + b.Comp + '</td>'); html += ('<td><div class="nowProduce clearfix" onclick="UpProduction(' + b.ID + ',this)" sake="Up">上移生產</div> </td></tr>'); $('#List').append(html); } }; var socket = initSocket(option); })