当前位置: 首页 > 面试题库 >

如何使用ASP.Net,IISNode,Node.JS和SQL Server实现基于事件的推送通知的Socket.IO?

常枫涟
2023-03-14
问题内容

对于通知项目,想推出事件通知。这些是登录,更改个人资料等,并显示给适当的客户端。我想讨论一些有关将其组合在一起的想法,并就最佳方法获得一些建议。

我在这里注意到,可以通过_changes流检测到对CouchDB所做的更改,该流由Node拾取,然后启动一个进程。我想实现这样的功能(我正在使用SQL
Server,但此级别的入口点可能不是最佳解决方案)。

而不是遵循CouchDB示例(检测基于数据库的事件,我认为这只会使事情复杂化,因为我们对客户端事件感兴趣),而是在考虑发生事件(例如用户登录)时发送一条消息带有一些事件详细信息(RESTful请求?)的消息。然后,该消息将被处理并广播到所有连接的客户端。适当的客户端显示通知。

拟议的生态系统:

  • .Net 4.0
  • IIS
  • IIS节点
  • 套接字
  • 节点JS
  • SQL Server 2008

这将使用.Net框架(IIS等)在现有项目的基础上构建。许多客户端的浏览器不支持Web套接字,因此使用Socket.IO是一个不错的选择(后备支持)。但是,据我所知,Socket.IO仍仅仅支持通过IISNode进行长时间轮询(这并不是真正的问题)。

一种选择是将Socket.IO/Node端点公开给所有客户端,以便可以通过JS将基于客户端的通知发送到Node服务器,后者广播消息。(遵循基本的聊天服务器/
client / server示例)。

或者,可以使用IIS终结点,但只能支持长轮询(通过Socket.IO)。这将提供一些附加的.Net后端处理,但可能会使体系结构过于复杂。

是否有可用于Node的基于SQL Server的事件通知?

最好的方法是什么?

如果我没有正确理解术语生态系统配置,请进行说明。

谢谢。


问题答案:

在考虑将iisnode /
node.js添加到现有ASP.NET应用程序的技术组合中之前,我建议您先检查SignalR。

关于websocket,无论使用ASP.NET还是node.js(socket.io),都只能对低延迟通知使用HTTP长轮询,因为HTTP.SYS /
IIS直到Windows 8才支持websocket。当前支持websocket(即使在Windows 8上也是如此),但是稍后可以添加这种支持。

我最近做了一些有关从node.js访问MSSQL的研究。那里有一些OSS项目,其中一些使用特定于平台的本机扩展,一些尝试仅在JavaScript中实现TDS协议。我不知道有什么可以使您访问SQL通知功能。但是,MSSQL团队本身正在为node.js购买一流的MSSQL驱动程序,因此需要密切注意以继续前进(https://github.com/tjanczuk/iisnode/issues/139)。

如果您打算使用SQL通知来支持低延迟通知,我强烈建议您从性能基准开始,该基准在SQL Server级别模拟所需的通信量。SQL
Notifications主要是作为一种机制来帮助维持内存缓存中与数据库内容一致的机制,因此它可能满足或可能不满足通知方案的要求。这些测量值至少可以帮助您从更好的设计入手。



 类似资料:
  • 问题内容: 我想使用XMPP,以便我的应用程序将更新发送到Android手机(1.5及更高版本)。我非常想使用XMPP将推送通知发送到电话。 我将如何实现这一目标。目前,我的Web应用程序正在使用许多servlet在apache tomact上运行,因此android手机可以访问信息,但是我发现很难理解如何实现XMPP,以便可以将信息从服务器推送到客户端( android手机)。 我已经通过Goo

  • 我最近注册使用Firebase,但我似乎不知道如何向特定用户推送通知。 对于我来说,我想你可以把它想象成Facebook。每当用户做了某件事,比如发布一篇有趣的文章供其朋友阅读时,我希望该用户的所有朋友都能收到该事件的通知。那么,使用Firebase,如何才能只通知他们的朋友而不是所有人呢?我的数据库存储这些内容。 也许有一种方法可以让每个用户成为Firebase数据库中的一个节点,每次发送通知时

  • 问题内容: 我一直在构建一个简单的应用程序来学习angular.js。到目前为止,我已经将MEAN堆栈中的所有内容连接在一起,并且能够从Mongo中保存和检索数据。 该应用程序本质上是一个待办事项列表。用户可以创建一个项目,并在项目内部创建带有“待办事项”的“卡片”,然后可以从一个州转移到另一个州(“积压”,“进行中”,“完成”等)。 我希望能够将通知推送给所有已连接的人员,以告知其应用程序需要刷

  • 我在Android和ios上使用亚马逊社交网络移动推送通知。我非常成功地发送了只有文本和图标的推送通知。现在,我正在尝试发送带有图像底部的通知。我找遍了每一个地方,但找不到一个完美的工作文件。有什么建议吗? 我用npm安装了这个包,我用它来发送推送通知。请参考这个链接。https://www.npmjs.com/package/sns-mobile sendMessage(endpoint、消息、

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w