Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在浏览器中与signalr建立多个服务器连接?_Javascript_Asp.net_Signalr - Fatal编程技术网

Javascript 是否可以在浏览器中与signalr建立多个服务器连接?

Javascript 是否可以在浏览器中与signalr建立多个服务器连接?,javascript,asp.net,signalr,Javascript,Asp.net,Signalr,问题 我正在使用信号器做我的应用程序中的常规工作,现在我还需要连接到另一个域上的另一个中心。。。这可能吗 特别是我需要能够有两个独立的连接,两个不同的网址,同时打开 详细信息 因此,假设我正在运行我的web应用程序@,在该应用程序中,我有几个应用程序可以使用的集线器。 在这一点上,一切都是标准的信号器,正如您可能在微软自己的框架入门指南中看到的那样 随之而来的是“真实世界”,现在我需要连接到运行在同一web应用程序托管的页面上的javascript代码中的hub@ 这可能吗? 这是个好主意吗?

问题

我正在使用信号器做我的应用程序中的常规工作,现在我还需要连接到另一个域上的另一个中心。。。这可能吗

特别是我需要能够有两个独立的连接,两个不同的网址,同时打开

详细信息

因此,假设我正在运行我的web应用程序@,在该应用程序中,我有几个应用程序可以使用的集线器。 在这一点上,一切都是标准的信号器,正如您可能在微软自己的框架入门指南中看到的那样

随之而来的是“真实世界”,现在我需要连接到运行在同一web应用程序托管的页面上的javascript代码中的hub@

这可能吗? 这是个好主意吗? 我应该做点别的吗

文档似乎暗示但从未明确说明signalr只能用于连接到页面所来自的应用程序

技术位

这些脚本已经在我的页面上,并且正在与主应用程序对话

<script src="~/scripts/jquery.signalR-2.2.1.min.js"></script>
<script src="~/signalr/hubs"></script>

我试着加上这个

<script src="https://api.example.com/signalr/hubs"></script>

然后开始编写init代码,但意识到,
$。连接对我来说有点未知,但我认为它总是指另一端


我需要的是第二个连接到api域,但如何连接?

您可以连接到页面外部的集线器。这一点甚至在本文中得到了阐述和举例。作为预先警告,服务器必须启用CORS,否则它将在JS中抛出CORS错误

要开始在客户端使用多个连接,您需要执行以下几行操作:

var connection = $.hubConnection("http://www.api.endpoint.com");
var apiHub = connection.createHubProxy('apiHub');

apiHub.client.foo = function() { // event function };

connection.start();
作为一个预先警告(另一个),Chrome有(我相信)5个同时连接的限制,这因浏览器而异。因此,如果您同时打开了许多请求,最终其中一些请求可能会失败。编辑:我怀疑这适用于同一来源的同时连接


您可以连接到页面外部的集线器。这一点甚至在本文中得到了阐述和举例。作为预先警告,服务器必须启用CORS,否则它将在JS中抛出CORS错误

要开始在客户端使用多个连接,您需要执行以下几行操作:

var connection = $.hubConnection("http://www.api.endpoint.com");
var apiHub = connection.createHubProxy('apiHub');

apiHub.client.foo = function() { // event function };

connection.start();
作为一个预先警告(另一个),Chrome有(我相信)5个同时连接的限制,这因浏览器而异。因此,如果您同时打开了许多请求,最终其中一些请求可能会失败。编辑:我怀疑这适用于同一来源的同时连接


尝试设置
$.connection.hub.url
。你可能也会遇到CORS问题,不过,如果你在谷歌上搜索Signal CORS,会有一些建议的链接,这不就是让第一个连接失效/中断,这样我就可以使用第二个吗?哦,好吧,从你的措辞来看,你不清楚你想要同时打开两个到不同URL的连接是的,这很难解释。。。很抱歉。。。如果你能想出更好的措辞,请随意编辑:)我想我可以在主应用程序中创建一个“代理中心”,并让它以某种方式订阅api之一。。。我不知道这样是否更好。请尝试设置
$.connection.hub.url
。你可能也会遇到CORS问题,不过,如果你在谷歌上搜索Signal CORS,会有一些建议的链接,这不就是让第一个连接失效/中断,这样我就可以使用第二个吗?哦,好吧,从你的措辞来看,你不清楚你想要同时打开两个到不同URL的连接是的,这很难解释。。。很抱歉。。。如果你能想出更好的措辞,请随意编辑:)我想我可以在主应用程序中创建一个“代理中心”,并让它以某种方式订阅api之一。。。我不知道这样会不会更好。哦,抓得好。。。我不知道你可以告诉信号员建立这样的新连接(我想我错过了文档中的微妙部分)。。。我不知道你可以告诉信号员建立这样的新连接(我想我错过了文档中的微妙部分)。