【问题标题】:SignalR web client without ASP.NET?没有 ASP.NET 的 SignalR Web 客户端?
【发布时间】:2013-02-27 15:24:33
【问题描述】:

是否可以编写 WebSocket (SignalR) 客户端,而不必将其嵌入托管在 IIS(或其他 ASP.NET Web 服务器)上的 ASP.NET 应用程序中?

例如,如果我有一个带有自定义集线器的自托管 SignalR 服务器,是否可以(如果可以,如何)从“纯”Javascript Web 客户端调用它?

在这种情况下,我们在 ~/signalr/hubs/ 文件夹中没有 <script src="~/signalr/hubs" type="text/javascript" /> 部分和运行时生成的“魔术”脚本。

【问题讨论】:

    标签: signalr


    【解决方案1】:

    SignalR 无需拥有 asp.net 应用程序即可工作。您可以创建一个通用的 html 页面并仍然与 SignalR 服务器进行通信。您甚至可以使用 silverlight、windows phone 或其他客户端与 SignalR 服务器进行通信,目前支持的有很多,甚至还有更多是第三方开发的(如 android、ios、node 等)。

    当您说“纯”JavaScript 客户端时,我假设您的意思是没有像 JQuery 这样的第三方库,在这种情况下,SignalR 目前在没有 JQuery 的情况下无法工作,但不依赖 JQuery 的客户端正在筹备中(@987654321 @)。

    您可以使用 ASP.NET Owin 创建一个自托管服务器下拉 SignalR。

    编辑: 为了使用自托管服务器,您必须在应用程序中启用跨域。查看答案:SignalR: Error during negotiation request: undefined

    【讨论】:

    • 感谢您的回复。仍然:如果不使用 ~/signalr/hubs/ 中的脚本,客户端 Javascript 代码应该如何调用 SignalR Hub 方法?允许使用 jQuery,也允许使用用于 jQuery 的 SignalR 模块(例如 jquery.signalR-1.0.0.min.js)。
    • 所以我需要的是“创建一个通用的 html 页面并仍然与 SignalR 服务器通信”。不幸的是,我还没有找到任何关于此的文档。
    • 查看 SignalR wiki。在没有集线器代理和跨域支持的情况下调用集线器方法:github.com/SignalR/SignalR/wiki/…。请注意,跨域也适用于 WebSocket。
    • @Osi 您可能还想看看SignalRUtils 似乎您可以使用“GenerateHubProxyCommand”命令生成js。
    • PHP 人员如何使用信号器...他们将如何编写集线器代码。我知道他们可以通过 js 从他们身边连接到集线器,但是他们将如何编写集线器代码。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2018-05-09
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多