使用抽象模型实现客户端到服务器端的信号推送
Signalr client to server push using abstract model
我已经设法从双方使用Signalr建立通信。当从服务器向客户端发送消息时,我使用抽象模型,并且在客户端只有一个方法。
我想知道是否有一种可能的方法可以从另一边做类似的事情-从客户端到服务器,因为到目前为止我还不能做到这一点。
我的意思是:
服务器端:public class MyHub : Hub
{
public void HandleNotification(BaseNotification notification)
{
if(notification is NewItemNotification) {
....
} else if (notification is UpdatedItemNotification) {
....
} else if (notification is DeletedItemNotification) {
....
}
}
}
在下面的例子中,我得到一个空的BaseNotification
对象
我认为这与Json如何。. Net库(SignalR内部使用)工作。
当数据以Json格式到达服务器时,SignalR将接受该字符串并将其转换为BaseNotification
对象。在Json中定义的所有不存在于BaseNotification
类型的属性将被驳回。换句话说:在BaseNotification
中不存在的性质不会被反序列化。所以你的BaseNotification
不能被强制转换成不同的类型,除非两种类型的属性名是相等的。
我可以想到两种不同的解决方案:
a)在单个对象Notification
中包含所有通知属性,为类型(即:Enum NotificationType
)添加一个:
public void HandleNotification(Notification notification)
{
switch (notification.Type)
{
case NotificationType.NewItem:
...
case NotificationType.UpdatedItem:
...
case NotificationType.DeletedItem:
...
}
b)为每种通知类型创建不同的句柄方法:
public void HandleNewNotification(NewItemNotification notification) {}
public void HandleUpdatedNotification(UpdatedItemNotification notification) {}
public void HandleDeletedNotification(DeletedItemNotification notification) {}
相关文章:
- 如何使用skip参数使用angular ui引导进行服务器端分页
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 将表单数据提交到服务器端
- 使用ajax的服务器端分页&jQuery
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 使用FormData上传AJAX图像;t在服务器端显示图像
- React路由器服务器端渲染和ajax获取数据
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- Meteor如何运行服务器端python脚本
- CORS-服务器端cookie没有保存在chrome浏览器上
- 加载服务器端渲染的React组件后执行脚本
- 在Javascript中复制C#服务器端验证
- 在服务器端脚本执行后关闭选项卡
- 如何向服务器端提交javascript变量
- 使用抽象模型实现客户端到服务器端的信号推送
- 使用信号R从服务器端Asp.net MVC触发警报