關於串接 SignalR 我自己是整理成下述兩種方法
一種是透過原生 Jquery 和 SingalR 在 index.html 頁面引用 新增一個 signalr service 然後在裡面重新封裝方法提供外部調用 可以參考
https://blog.johnwu.cc/article/asp-net-core-angular-4-教學-signalr.html
另一種就是找現成網路上別人寫好的套件 我測試兩種
@aspnet/signalr-client 參考了下述幾篇文章
最後在連線的時候都會跳出下述錯誤 但我實在找不到為什麼會這樣 因此換用另個套件
Failed to start the connection: TypeError: Cannot read property ‘length’ of undefined
翻了下 stackoverflow 找到這篇文章
這篇提到 angular/signalR 使用發生錯誤 Error: Failed to start the connection. SyntaxError: Unexpected end of JSON input
不過我沒遇到 但是它後來使用其他套件 ng2-signalr
ng2-signalr 使用起來相當容易 但我發現一個小問題在 Server call Client 的時候 不能同時獲取多個參數
這類的問題 在 github issue 中有人提出 然而並沒有獲得回應…
我自己打開原始碼查看
在 callback 原本是獲取整個 websocket 中所接收回來的 Array 但作者只有 cast 第一個元素
問題來了…這是原始碼 在專案執行的時候 拉回來的 npm 套件應該是 compile 過後的 因此我目前是直接修改 compile 最後的結果 (無法附圖 QQ)
找到 node_modules -> ng2-signalr -> src -> services -> connection -> signalr.connection.js
第 145行 將 casted = /** @type {?} / (args[0]); -> casted = /* @type {?} */ (args);
但這樣變成其他同仁如果要使用也得修改最後的套件js檔案…
請問各位前輩我該怎麼做?
修改原始碼後我也不知道怎麼測試才正常才能提交上去給作者…