困擾很久的問題終於解決: signalr 2.4.1 配合 js3.4.1 在 chrome 正常 但是在 edge 和 ie11 無法接收訊息
用最新版的 signalr 2.4 配合 舊版的 js2.2.4版本 在 IE Edge Chrome 都是正常的
但是只要換到 js 3.0以上 版本 IE Edge 就收不到訊息 但是發出沒問題
之前一直查不到原因
看網路上的回答 像是 IE 的 cache 問題 $.ajaxSetup({ cache: false });
也都沒有用
今天好好地看一下
但是只要換到 js 3.0以上 版本 IE Edge 就收不到訊息 但是發出沒問題
之前一直查不到原因
看網路上的回答 像是 IE 的 cache 問題 $.ajaxSetup({ cache: false });
也都沒有用
今天好好地看一下
SignalR 疑難排解
看到下面的一個重點
不正確 JavaScript 用戶端程式碼,不允許中樞接收訊息
var chat = $.connection.chatHub;
$.connection.hub.start().done(function () {
chat.client.broadcastMessage = function (name, message) {...};
});
相反地,加入方法的訂用帳戶呼叫開始之前:
正確加入至中樞的 訂用帳戶的 JavaScript 用戶端程式碼
var chat = $.connection.chatHub;
chat.client.broadcastMessage = function (name, message) {...};
$.connection.hub.start().done(function () {
...
});
*****************************
原來寫法改了
原先我是這樣寫
先連接 Server
var chat = $.connection.chatHub;
$.connection.hub.start().done(function () {...});
在後面加要溝通的函數
chat.client.broadcastMessage = function (name, message) {...};
現在改成
先宣告要用的溝通函數
chat.client.broadcastMessage = function (name, message) {...};
最後再連接
$.connection.hub.start().done(function () {...});
這樣做之後 IE Edge 就正常了
XD 就是這樣而已
留言
張貼留言