SignalR基于这三种技术构建, 抽象于它们之上, 它让你更好的关注业务问题而不是底层传输技术问题....SignalR利用底层传输来让服务器可以调用客户端的方法, 反之亦然, 这些方法可以带参数, 参数也可以是复杂对象, SignalR负责序列化和反序列化....然后在管道里使用SignalR, 使用app.UseSignalR():
?
这里我已经建立了一个Hub, 叫做CountHub....使用Hub
首先建立一个Controller, 并注入IHubContext:
?
接下来我们就可以使用IHubContext这个对象与客户端进行实时通信了....这里, 我调用了所有客户端上的someFunc这个方法, 参数是一个对象.
但是使用这种IHubContext的注入方式, 我们无法在它那取得Caller(调用该方法的客户端)这个属性.