一、官方给出的 core SignalR没有小程序端的代码
第三方小程序的SignalR客户端分装:
/liangshiw/SignalRMiniProgram-Client
SignalRMiniSignalR.js帮助类库:使用微信小程序webSocket的api与后台建立socket连接,后端使用signalR组件建立hub(中心),通过hub(中心)与客户端交互,传递信息大都包括要调用的函数名称,函数参数等关键信息,如果匹配到相同的名称的函数名,则执行相关的操作; SignalRMiniSignalR.js中使用数组存储可能被后端调用的方法名和方法体,如果匹配到相关的函数,就执行该函数;
二、使用真理
Get Started
创建对象
let hub = new HubConnection();
开启连接
hub.start(url,queryString);例如hub.start(url,{access_token:"bearer token"});
事件
//连接开启事件hub.onOpen = (res)={console.log("连接已开启")};//连接关闭事件hub.onClose = (res)={console.log("连接已关闭")};//通讯过程中的Error事件hub.onError = (res) =>{console.log(res)};//手动关闭连接hub.close({reason:"手动关闭"});
调用服务端方法(无返回值)
hub.send(methodName,agrs...);
调用服务端方法(有返回值)
//该方法会返回一个Promisehub.invoke(methodName,agrs...).then((res)=>{console.log("返回值:"+ res);});
注册客户端方法供服务端调用
//该方法会返回一个Promisehub.on("clientMethod",(res)=>{console.log("被服务端调用");})
更多:
Core SignalR CORS 跨域处理
Core SignalR 分组使用示例
Core SignalR JavaScript客户端重新连接