我在建造一个原型时使用了信号器。我需要向多个客户端广播消息,但是对于哪些客户端将获得哪条消息,有一些逻辑,这足够复杂,可以排除使用组的可能性。相反,我基本上是检查每个连接的客户机-如果它们适用,它们将被添加到列表中。然后,我使用以下方式发送消息:
var clients = DetermineClients(msg);
foreach (var client in clients)
client.Send(msg);
当然,如果我能够使用组,我可以做…:
var group = Det
我们怀疑信号器有内存泄漏问题。我们将Appinsight添加到我们的项目中,并得到了这样的报告。这意味着什么
重新连接请求与/connect请求非常相似,但它是在客户端已经连接后使用的,然后由于某种原因断开连接。与/connect请求一样,对重新连接请求的响应可以保持打开状态,直到信号器连接关闭
在连接中断后,信号器将尝试自动重新连接到服务器,直到达到断开连接超时(默认情况下为30秒)。在此期间,信号器将每隔一段时间发出/重新连接请求,直到其中一个请求成功。如果在超时之前没有重新连接请求成功,则
标签: Signalr
signalr-hubsignalr.client
我的应用程序中有套接字通知,当我在本地运行时,它工作得很好,但是当我部署到我的VM时,它抱怨给出以下消息
Error: Error during negotiation request.
at Object.signalR._.error (jquery.signalR.js:178)
at signalR.fn.signalR.start.onFailed (jquery.signalR.js:644)
at Object.signalR.fn.signalR.star
我要用.NETSignalr(和.NETWebAPI)后端和客户端上的Reactjs和Ampersand.js构建某种投票应用程序。
关于此设置,我有几个问题:
使用React路由器和Ampersand路由器有什么区别?
如果我使用Ampersand router,管理浏览器状态会更容易吗
当在高强度实时环境(高频投票)中拥有一个组织有序、响应迅速的客户端非常重要时,是否有人可以选择clientstack
我正在开发Signal应用程序,我的客户端应用程序是移动应用程序。(安卓和iOS)
问题:-
CORS-如果所有呼叫都来自移动设备,是否必须启用跨域
安全性-在这种情况下,保护我的Signal应用程序的最佳方法是什么。我已经在这里读到了关于信号安全的内容
但不确定在我的情况下应用哪一个,因为所有呼叫都来自移动设备。不,您不需要启用CORS,除非服务器处理信号器位于与Web服务器不同的URL
关于安全性,请遵循您链接到的信号器文档中的建议。首先使用SSL,并要求在集线器级别进行授权。具体采取哪
标签: Signalr
signalr-hubsignalr.clientsignalr-backplanesignalr-2
我们需要使用signar实现推送通知。我们有两个web服务器(即,在集群中配置的生产服务器和备份服务器)。只有在生产服务器关闭时,客户端才会连接到备份服务器。我们有同步的生产数据库和备份数据库。生产web服务器与生产数据库连接,备份web服务器与备份数据库连接。如何使用sql server扩展此场景。检查以下链接,该链接总结了三种不同的扩展方法:
目前,我正在使用signalR和agsxmpp库开发聊天应用程序,我已经看到了许多使用javascript创建hub代理的示例。然而,我的架构与这些示例不同
我有类库和一个web项目(web表单)
集线器是在类库中编写的,java脚本存在于web项目中,我想用java脚本创建集线器的代理(在类库中编写),我已经做了很多尝试。但找不到解决办法
我已经阅读了owin(startup.cs),但仍然没有一个清晰的图片,我应该把我的owin类放在哪里,在web项目或类库中
我已经在这里详细定义了我的场景
所以我一直在玩弄Scott Hanselman简要谈到的信号器库。我使用的应用程序基本上是向用户显示实时数据(在浏览器或桌面应用程序中仍然存在争议)。我很好奇,如果signar在3-5秒的循环中运行并将数据推送到客户端,会发生什么类型的负载或内存使用。我想这最终会造成问题。如果是,还有什么选择?为什么会导致“问题”?就吞吐量而言,3-5秒对于信号机来说实际上是很慢的。我们谈论的是什么类型/大小的数据?到目前为止,您尝试了什么?如果我运行一个带有事件处理程序的计时器,每3-5秒将少量数据推送到客户
我的SignalR出现问题,导致IE(9)在一两秒内向服务器发送数千次ping/重新连接尝试
signar/reconnect?transport=longPolling&connectionToken=(此处有一些长令牌).
它得到一个404(连同完整的404响应)
然后进行另一次ping:
signar/ping?=(ID)
它得到一个“pong”响应,然后尝试如上所述的另一次重新连接
问题是它尝试了几千次(上一次测试是6800+ping/重新连接)。这不仅是一个糟糕的服务器谈话,但它也咀嚼
我当前在尝试将.NET WPF应用程序连接到运行SignalR的服务器时收到一条500错误消息,该服务器使用OWIN自托管。我已尝试在集线器配置中将EnableDetailedErrors设置为true。我还在HubPipelineModule中尝试了OnIncomingError。两者都不起作用。关于如何查看特定错误的其他想法?您可以使用扩展方法查看异常详细信息,而不是空白的500响应。此方法可通过NuGet包获得
在调用MapSignalR或添加其他可能引发异常的中间件之前,请确保调用Use
正在尝试启动简单的windows窗体信号器服务器,但当我进入WebApp.Start(URL)调试时,它会取消连接,没有错误,并且服务器不工作
如何调试信号器以及服务器为什么不工作
代码:
使用Microsoft.Owin.Hosting;
使用Microsoft.AspNet.signal;
命名空间信使服务器
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
常量字符串URL=”http://localhost:8080";
私有void Form1\u加载(
我试图通过编写一个非常简单的应用程序来学习Signal。。。它基本上是周期性地发送“Hello”(类似于,但要简单得多)
这是我的中心:
public class StockTickerHub : Hub
{
public void Hello()
{
var s = StockTicker.stockTicker;
Clients.All.hello();
}
}
…下面是应该定期发送消息的代码:
public class Stock
我有一些我以前写过的代码,这些代码以前是可以工作的,它使用signarnuget包
有一个客户端和一个服务器端项目
我在服务器上安装了以下软件包
<packages>
<package id="Autofac" version="3.5.2" targetFramework="net45" />
<package id="David.Utility.Log4net" version="2.0.1" targetFramework="net45" />
标签: Signalr
owinautofacnancymasstransit
正在尝试设置一个SignalR hub(规范聊天),以便在OWIN托管的Nancy应用程序和MassTransit中运行。MassTransit部分工作:
public ChatMessageConsumer(IEnumerable<IChatMessageProcessor> messageProcessors,
IChatHub chatHub,
ILogger logger) { ... }
public async Task Consume(Consume
我正在尝试创建一个具有起始值的订阅中心。我无法设置起始值
现在我有了observable,它每隔30分钟生成DateTime.UtcNow
public async Task Subscribe()
{
var client = Clients.Client(Context.ConnectionId);
var subscription = new CompositeDisposable();
var dateTimeUTCNow = Observable.Interva
标签: Signalr
session-statestickyweb-farm
是否可以在具有粘性会话的webfarm中使用SignalR?如果是,怎么做?是和否,是的,这是可能的。不,不是现在,因为scaleout正在为1.1(几周后)重写。当退出时,您将能够使用Sql server、service bus或redis在粘性或非粘性会话(实际上不相关)上使用Signal。在接下来的几周里会有更多关于它的信息
标签: Signalr
signalr-hubsignalr.clientowin
我有一个类似于场景的应用程序,其中我有一个方法可以连续向组广播(无论是否有人“加入”)。比如:
var aTimer = new System.Timers.Timer(2000);
aTimer.Elapsed += (sender, e) =>
{
// broadcast to listeners whether they are listening or not
IHubConnectionContext _clients = GlobalHost.ConnectionMa
在信号机中有没有类似的方法:
public void CallClientMethod(string methodName, MyObject data)
{
var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
ctx.Clients.All.methodName(data);
// or alternatively
ctx.Clients.All.CallClientMeth
标签: Signalr
windows-authenticationsignalr-hub
我正在尝试将SignalR与Windows身份验证一起使用,但我无法让它工作。如果我将站点访问设置为拒绝匿名用户,则加载HTML页面,但无法加载信号器/集线器。如果我在Hub类上设置Authorize属性,则永远不会调用服务器方法
最后我要做的是让服务器使用客户端用户的Active Directory凭据执行代码
我希望用户检索在重新连接到Signal server时可能丢失的消息
我知道我可以独立于信号器保存消息,跟踪客户端中接收到的最后一个消息id,并在重新连接时重新发送较新的消息,但我正在查看SqlServer背板的messages_0表,该表具有有效负载和PayloadID,并想知道是否有更重要的方法让背板为我执行此操作,或者扩展背板为我执行此操作
你知道我该怎么做吗 信号器更像是一个实时消息系统,用于向连接的客户端广播请求。如果发送到多个客户端,则没有内置的方法来跟踪广播消息是否由特定的解耦客户
我正在尝试让SignalR在Nop商务插件中工作。我已经安装了NuGet包并编写了启动类,但从未调用启动类。这是我的密码:
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Nop.Plugin.Misc.CAImport.Infrastructure.Startup))]
namespace Nop.Plugin.Misc.CA
我无法附加图像,因此显示上面的浏览器ping结果
请告诉我ping的目的,如果我设置pinginterval=null,它的缺点是什么。Rism。。。这是一次冗长的投票。我想知道它在WebSockets中的作用这个问题的公认答案的第一行是:“/signalr/ping请求的全部目的是保持ASP.NET会话活动。”这就是你的答案。如果你把它设为空,你认为会发生什么?请先搜索再问。已经提出了940万个问题,很可能您的问题已经按照提供的链接得到了回答。
ping?_=145265589222
ping
我只是想知道,在长轮询场景中,当客户端在超时后重新连接时(服务器没有响应),客户端是否会收到新的连接ID 当客户端和服务器之间的连接丢失时,客户端将自动开始尝试重新连接。如果在重新连接超时时间内恢复连接,则connectionId保持不变(并且服务器上引发了OnReconnected事件)-即使基础物理连接不同,它也被视为相同的信号(逻辑)连接。否则,当重新连接超时过期时,将不再发生自动尝试,客户端将不得不再次手动连接,并将生成新的connectionId
此工作流独立于传输策略(长轮询、Web
对于Signal R,如果试图发送对象,传递模型的语法是什么
private async void FormLoaded(object sender, RoutedEventArgs e)
{
//Connection stuff...
Proxy.On("sendHello", () => OnSendDataConnection(ModelBuilder()));
}
private void OnSendDataConnection(ConnectionModel
标签: Signalr
azure-web-app-servicereactjs.net
我在Azure上安装了一个站点,它导致了严重的网关错误,尽管它在本地机器上运行得非常好。以下是我面临的错误:
失败的请求日志还包含以下错误:
信号机日志如下:
我正在添加以下行Startup.cs配置方法:
GlobalHost.DependencyResolver.UseSqlServer(sqlConnectionString)
但是SQLAzure不支持它,这就是问题的原因 我正在添加以下行Startup.cs配置方法:
GlobalHost.DependencyResolver.U
我甚至不知道该怎么问这个问题,所以情况如下:
我们有一个单页应用程序,它连接到使用CORS进行跨域身份验证的SignalR hub
用户连接到中心并保持浏览器窗口打开
我们删除了用户,但由于他们已经连接到集线器,因此只要他们返回到该页面(无需重新加载),集线器就会重新连接
重新启动IIS无效
这就是情况,我想我理解为什么会发生这种情况,我不知道的是防止将来发生这种情况的最佳实践(我最初认为会终止会话,但由于这是一个单页应用程序,只要它们不刷新,它就不会调用会话超时)
服务器端是否有一种简单的方法
我有一个网络白板,它是用javascript构建的,并且在一个特定的组中有一组预定义的用户,我必须使用信号器来广播它,但我对此一无所知。
所以请帮我找到一个解决方案你应该从这里开始
您所寻找的类似于一对一聊天,因为您只向特定用户发送数据
在高层:为人们分配一个唯一的用户名,并在他们连接时将其链接到他们的会话ID。当你播放某些内容时,你会检查你的列表,其中列出了哪些人要发送给vs谁在线,并将其发送给那些在线的人 谢谢MickeyM,我已经尝试了所有这些东西,我已经使用Signalr创建了私人和团体
标签: Signalr
sqldependencyasp.net-core-2.1
是否有任何核心2.1示例可用于将SignalR与SQLDependency一起使用。
确实启用了代理等,但从未获得任何更改事件触发的依赖项。仅触发事件订阅。
当MS-SQL数据库表Cities在后端发生更改时,我希望看到更改立即反映在客户端网页上,而不必刷新/重新加载页面
//在ConfigureServices中启动应用程序时启动依赖项
Start(Configuration.GetConnectionString(“DefaultConnection”)
使用Microsoft.AspNet
我有两个web应用程序。
在一个web应用程序中,我试图通过信号器与另一个应用程序通信。
我正在使用InvokeAsync通过信号器发送数据,并等待客户端上的结果。
在服务器上,通过发送数据,我正在调用一个web api,然后我想将结果作为HttpResponseMessage发送给正在等待的SignalR客户端。
但在尝试这样做时,我得到以下错误:
{System.IO.InvalidDataException:读取消息时连接终止。
在Microsoft.AspNetCore.signar.
我需要使我的一些webapp功能实时。所以我从signalR开始。对于任何数据库更改,我都希望在客户端实时显示新数据。我看到了两种方法
第一种方法是在哪个函数中更改数据,然后调用
用于向所有连接的客户端发送新数据的SignalHub。及
另一个过程是触发“sql server依赖项或sql server表依赖项”,并向连接的客户端发送通知,客户端将在收到通知后重新加载数据
但有一种微服务不断地从数据库中获取数据并更改值,而该数据库并没有与核心asp.net核心项目集成。现在我想通过micro
标签: Signalr
signalr-hubsignalr.client
我有以下问题与信号与用户访问我的网站从移动设备。
问题是,当手机锁定或用户转到另一个应用程序时,会在服务器上触发Disconnect()方法(我尝试向服务器发送消息,并等待它通过SignalR回复,但在服务器上触发Disconnect方法后,服务器没有回复)。在此之后,由于客户端不再连接到服务器,因此它将接合
客户端如何告知服务器它已返回?您可以停止连接:
$.connection.hub.stop()
然后通过
$.connection.hub.start();
在下一版本的Signal
如果我有一个signarhub,它向所有具有相当大负载或私有信息的客户端发送消息,那么所有连接到该hub(属于同一组)的客户端是否都会收到消息,即使它们没有在客户端订阅这些事件
想知道客户机是否足够聪明,能够协商向服务器发送哪些事件,以便服务器不发送无关数据
谢谢 是的。如果客户机订阅了集线器,它将接收通过该集线器广播频道发送的所有消息
除了发送到不包含该客户端的特定组或发送到另一个特定客户端之外,没有其他方法可以阻止客户端获取消息
一些例子:
Clients.All.foo(); // All
在集线器中,我使用
try {
GlobalHost.ConnectionManager.GetHubContext<ContextManagerHub>().Clients.Client(connectionID).SendMessage(message);
} catch(Exception ex) {
HandleError(ex);
}
试试{
GlobalHost.ConnectionManager.GetHubContext().Clients.Cli
我正在使用ASP.NET身份验证和基于cookie的身份验证。我正在CookieAuthenticationOptions类上设置ExpireTimeSpan,以控制在用户再次登录之前允许的不活动时间
这一切都很好,但当我向应用程序添加signar时,用户在一段时间不活动后就不必再登录了。signer周期性地执行一个“ping”请求,我认为这是导致cookie到期时间延长的原因
我正在寻找一种方法,不延长信号器URL的cookie过期时间
我研究了Microsoft.Owin.Security.
标签: Signalr
client-sideserver-sidelong-pollingsignalr-hub
我希望每隔20-30秒调用一次外部服务,并使用signal使客户端可以访问这些服务,但我不确定是否应该让客户端在JavaScriptsetInterval循环中调用服务器,或者是否应该让服务器运行自己的循环并将信息推送到客户端。我希望做动态页面更新,以显示用户当前在Xbox 360/Xbox One或PlayStation网络上玩什么
目前,我在setInterval循环中从客户端调用服务器端代码,但我不确定这将扩展到什么程度。我以前一直在通过AJAX进行WebAPI2调用,但这会很快占用带宽。
我们有一个基于网络的游戏(通信信号器),我们的工作量将是:
5000-20000并发客户端,0.5-2条消息/客户端/秒~=10-40k条消息/秒
对于以下服务器,在处理负载时是否存在任何问题(假设Signal拥有80-90%的cpu)
双六角芯L5639(2.13Ghz)
24G Ram
windows server 2012标准
(通过长轮询,我们可以在5-10%的cpu下轻松完成)尽管我不想写它,但“这取决于”在这里非常准确。信号器可以扩展到远远超出您的要求。Damnie Edwa
我使用的是SignalR版本2.2.0。在下面的代码中,我得到了一个异常,说明$未定义hubConnection。我知道我的脚本路径是正确的,因为我可以在signar脚本中设置断点并查看它们是否被命中。我甚至跨过定义hubConnection函数的地方,仍然得到了异常。我做错了什么
<script type="text/javascript" src="~/scripts/jquery-1.10.2.min.js"></script>
<script type="t
我喜欢信号员,我正在开发两个东西
服务器端代码
客户端web应用程序
挑战在于,我需要允许服务器在非.NET环境(如Java或PHP)中实现。在这种情况下,客户端将使用
SignalR库和服务器必须与服务器上的SignalR实现在PHP、Java等方面相匹配。在某种程度上,我所追求的是提供服务器端API和基于.NET SignalR的实现,但允许任何人都能够在PHP/Java等方面实现服务器端API
为此,我需要API序列和Signal使用的协议。我有点认为这不会发生,因为客户端和服务器端的si
环境
.NET MVC5
IIS8.5启用websocket时
IE11
Windows 8.1
信号机2.2.0
问题
我已经运行SignalrWeb应用程序两个月了,我注意到一个定期断开的套接字。我彻底检查了控制台日志,结果让我非常惊讶
SCRIPT12030: WebSocket Error: Network Error 12030
这种情况经常发生,如下所示
09 - 08:10:01
10 - 13:10:01
11 - 18:10:01
12 - 23:10:01
14 - 0
标签: Signalr
azure-application-insights
我对Application Insights的遥测配额中有很大一部分被针对SignalR的ping请求(以及其他SignalR请求)所占用
如何防止报告这些请求?我想保留其他ajax请求,但对信号器请求应用某种(客户端)过滤器
我还没有找到任何提供简单示例的好文档。我知道我可以使用addTelemetryInitializer过滤掉一些请求,但我不知道过滤什么
appInsights.queue.push(function () {
appInsights.context
尝试进行简单的聊天,并在用户连接时将其发送到userTracker
public override async Task OnConnectedAsync()
{
var user = Helper.GetUserInformationFromContext(Context);
await this.userTracker.AddUserAsync(Context.Connection, user);
await Clients.All.
当我向我订阅的信号器组发送消息时,我会得到消息
我不想要这个,我想要它把信息发送给小组中的其他人
这可能吗?如何操作?这里可以做的是将ConnectionId发送到客户端并进行检查。例如,下面的一个是您的中心:
[HubName(“moveShape”)]
公共类MoveShapeHub:Hub
{
公共空心形状(双x,双y)
{
Clients.shapeMoved(Context.ConnectionId,x,y);
}
}
在客户端级别,您可以执行以下操作:
var hub=$.conn
我试图覆盖OnConnected(),OnDisconnected()方法,但我得到:
OnConnected()': no suitable method found to override
是否正在实现IDisconnect,IConnect接口,并在Connect()和Disconnect()中执行与OnConnected(),OnDisconnected()相同的处理
有什么好处
公共静态类UserHandler
{
public static HashSet ConnectedIds
当使用OWIN自托管Signaler时,我遇到了CORS问题,这仅在我尝试启用身份验证时才会发生
我在web浏览器中遇到的错误是:
XMLHttpRequest无法加载源。。。访问控制允许原点不允许
只有在使用以下方法在自托管服务器中启用身份验证时,才会发生这种情况:
如果我注释掉AuthenticationSchemes行,那么CORS就可以工作了(我已经检查了所有内容)。如果使用NTLM以外的其他身份验证方案,我也会遇到同样的问题
使用Fiddler检查发生了什么,在未启用身份验证的情况下,
如果我使用Microsoft.OWIN类型(如OwinMiddleware和IOwinContext)构建OWIN中间件,我的中间件会与非Microsoft OWIN主机/服务器一起工作吗?我正在研究和的中间件类,它们似乎与中间件(如Cookie身份验证中间件)所基于的基类非常不同。我正在阅读规范,但我仍然不清楚非Microsoft Owin服务器是否可以在不依赖Microsoft.Owin的情况下使用Owin中间件和IOwinContext类型(我想这会破坏Owin的用途) 如果您使用Owin
标签: Signalr
signalr-hubsignalr.client
我将SignalR 2.0.0 Win2012 iis8用于具有两个不同IP的两个环境。
一个环境服务启动,第二个环境服务关闭(故意)
使用websocket协议
我有以下情况:
当我连接到第一个环境并希望连接到第二个环境时。
我断开了与第一个环境的连接,并尝试连接到第二个环境,但收到错误(其正确行为)
我尝试重新连接到第一个环境,但仍然收到相同的错误
错误为“协商请求期间出错”
刷新浏览器后,我可以再次将success连接到第一个环境
我做错了什么
这是我代码的一部分:
function co
我有一个网站使用信号器连接到一个状态中心,该中心向所有连接的客户端宣布一些远程服务器的更改
我使用OWIN自托管Signaler,并在服务器上启用了CORS allow all
当我使用http托管时,一切都很好
当我使用证书移动到https时,一切都停止了
XMLHttpRequest cannot load https://10.141.114.79:8081//signalr/negotiate?clientProtocol=1.4&connectionData=%5B%7B%22
目前,我们正在Windows服务中使用SignalR自托管(也使用SSL)。这用于将不同类型的更新推送到客户端(ASP MVC应用程序)。这一切都很好
不过,我们现在正在考虑提供高可用性解决方案的选项。由于windows Signal服务目前是单点故障,因此被认为是一个薄弱环节
我一直在研究signalr提供的scaleout选项,但是我找不到很多关于这方面的信息(结合自托管)。目前我有以下问题:
-是否可以在自托管信号器服务中使用这些扩展选项?
-如果没有,我们还有其他选择吗?我目前在这方面遇
在启动中使用以下命令
app.UseWebSockets();
app.Map("/signalr", signalrApp =>
{
signalrApp.UseKatana(config =>
{
config.RunSignalR(new HubConfiguration
{
E
标签: Signalr
signalr-hubsignalr.clientasp.net-core-signalrsignalr-2
我有一个signar页面实现,它在查看屏幕时运行良好。然而,如果我在我的手机上,它进入了一个启动屏幕,我回到我的手机,浏览器窗口仍然存在,没有发生更新
我必须等待下一次更新,当我重新登录并查看下一次更新后,启动屏幕显示为1:00时,可能需要5:00的时间。只是感觉不对
是否有一种方法可以持续更新页面,或者在需要时使用Signal手动刷新页面。最佳做法是什么
另一个刚刚发生的例子是,当我的启动页面出现时,游戏还剩10秒。我重新登录以查看它,但它仍然停留在10秒钟内,因为游戏结束后将不再显示更新。我
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 24 页