我在我的asp.net web窗体应用程序中使用了signalr,所有这些似乎都工作得很好,只是我遇到了一个异常
$.connection.hub.start();
但是,如果我在弹出的“Doyouwantdebug”窗口中单击no,则信号器功能工作得非常好。完整的错误消息如下
无法获取属性“transports”的值:对象为null或未定义
下面是完整的js代码
var docStatusUpdate = $.connection.docstatus;
docStatusUpdat
标签: Signalr
signalr-hubsignalr.client
嗯,我正在尝试对视频流进行验证,我正在使用asp.net c#。
我有点迷路了,你有什么想法或建议吗?没有,Signal基于标准(WebSockets、LongPolling、ForeverFrame等),这些标准只传输基于文本的JSON消息。你最好还是调查一下这件事。现在,您可以通过使用signar发送控制消息来将这两种技术结合在一起,从而触发一些JavaScript来更改浏览器当前显示的WebRTC提要。我在signar之上实现了视频流。您可以在中找到我的示例。我不知道SignalR是否打算
我在服务器端代码c#.net4中使用了signar。
在客户端上,我正在使用javascript
例如,当我从服务器调用客户机方法时
Caller.ShowDate(DateTime.Now);
客户端javascript获取值“2012-11-13T19:02:39.3386544+02:00”作为字符串
如何在javascript中将其用作日期 请记住,由于时区/客户端修改时钟等原因,客户端时间可能与服务器时间大不相同。也就是说:
C#:
JavaScript:
myHub.cli
您是否可以在服务器端识别给定信号器连接使用的传输方法?(WebSocket、SSE、长轮询等?)在集线器中,您可以通过查看请求的查询字符串来检测正在使用的传输:
Context.QueryString["transport"]
这将计算为“WebSocket”、“serverSentEvents”、“foreverFrame”或“longPolling”
理想情况下,您的代码不应该依赖于正在使用的传输,因为signer为您抽象了它。但是,这对于日志记录等可能很有用。对于ASP.NET Sign
标签: Signalr
invalidoperationexception
我最近开始在ASP.NETMVC3应用程序中使用SignalR库。我能够使用信号R向客户端发送消息。但我注意到,如果我从另一个浏览器登录到应用程序,会出现以下错误-
异常类型:InvalidOperationException
异常消息:无法识别的用户标识。在活动信号器连接期间,用户标识不能更改
服务器堆栈跟踪:
位于Microsoft.AspNet.signal.PersistentConnection.GetConnectionId(主机上下文,字符串connectionToken)
位于M
我正在MVC3应用程序中尝试Signalr1.1.0。我已覆盖OnConnect方法,如下所示:
public class MyHub : Microsoft.AspNet.SignalR.Hub
{
public static List<string> Connections = new List<string>();
public override System.Threading.Tasks.Task OnConnected()
{
我正在使用一个iOS信号器库,名为DyKnow/signarobjc:git-hub页面。我正在尝试在我的项目中将此库更新为SignalR 2.0,因为后端已更新为SignalR 2.0。我已经完成了AFNetworking到2.0的更新,因为这是新的signalR 2.0更新所必需的。更新后,我只能通过信号器发送消息,但无法接收它们
在更新之前,这个库工作得很好,尽管通过信号器接收消息是偶然的;有时它会收到适当的消息,有时它不会收到任何东西。我可以看到,在更新之后,通过iOS发送的消息被接收,
我们需要能够将新项目/DLL放入我们的主项目中,并让主项目接收它们并能够使用它们。决定使用AutoFac来处理这一需求。这样,主项目就不需要直接引用我们想要使用的任何其他项目/DLL。以下是global.asax:
var builder = new ContainerBuilder();
var directoryName = HttpContext.Current.Server.MapPath("~/bin/");
var cfg = new ModularityLoader(new Mo
标签: Signalr
moqsignalr-hubsignalr.client
我正在为我们的Signalr2.x应用程序构建一个单元测试框架。
我使用Moq来模拟所需的框架。
我了解如何使用Moq与中心/服务器端的呼叫进行交互。
我有点困惑,我将如何在客户端做到这一点。
如何设置Moq,以便模拟对客户端浏览器的信令呼叫
我见过两种模仿客户的方法:
1:
我刚开始使用最小起订量,但仍在不断摸索。
信息/建议将不胜感激
谢谢,
JohnB信号员团队有关于此的教程,请参见我已经看过了示例。当您向所有连接的客户端发送消息时,这是一个很好的起点。它不能满足我的需要。我试图弄清楚如何
我有一个战略问题
我想在我的网站上使用signalR更改数据,并使用react显示更改的数据。我的问题是:如何在信号器和react之间执行数据绑定
我的第一条线索是:
信号员:
chat.client.addMessage = function (name, message) {
chatHistory.push({ Author: name, Text: message }); //here I change global variable chatHistory
};
反应:
va
我开始遇到性能问题,尤其是升级到2.2.0版之后
对于使用不同集线器的更复杂页面,启动连接最多需要30秒:
[16:20:35 GMT+0100 (GMT Daylight Time)] SignalR: serverSentEvents transport connected. Initiating start request.
[16:21:05 GMT+0100 (GMT Daylight Time)] SignalR: The start request succeeded. Trans
枢纽类
public void sendToAll(字符串用户名、字符串消息、字符串grpId、字符串groupName、字符串UserId)
{
}
客户端:
$('#btnSendToAll').click(function () {
var GrpId = $(this).parent().attr('groupid');
var GrpName = $(this).parent().attr('groupname1');
我在我的应用程序中使用信号器。这是我的用例
需要广播的数据由多个线程生成。一个客户端可以分为多个组
一个线程可以广播到多个组。如果多个线程同时向一个组广播,会发生什么情况
广播信息时我必须注意同步还是由信号员负责?同时执行相当困难。(两个事件之间总会有一些差异,因此您不必担心这一点)
现在,当两个部件从点A向点B发送数据时,取决于发送数据所使用的技术,即使发送的顺序是,比如1和2,也可能发生2比1先到达的情况(因为网络不是您可以控制的)
如果消息顺序在应用程序中很重要,则应使方法广播彼此等待,因
我们有两个信号器实例(不同的信号器集线器托管在不同的服务器上,这些服务器是负载平衡的)。我们计划将SignalR Scaleout与SQL Server一起使用
我们有以下关切
对两个信号集线器使用公共(单一)数据库(单独的信号器实例),这样可以吗
是否可以基于信号器实例在数据库中的自定义架构名称下生成与信号器相关的表
这就是背板的要点——许多信号器实例都使用相同的数据库。背板所做的唯一一件事就是将每个实例的消息保存到中央后台存储。然后,每个实例都将轮询表中的更改。每个实例将筛选出自己保存的消息
我有一个Asp.NETWebAPI(Api1),需要将消息发送到SignalrRealtimeAPI(Api2)。我正在尝试使用Azure广告承载令牌进行身份验证。Api1的客户端是一个JavaScript客户端,它使用ADAL.js从Azure获取令牌
var authContext = new AuthenticationContext({
tenant: tenantId,
clientId: jsclientId,
标签: Signalr
signalr-hubsignalr.client
我的Run函数在客户端。我想在通知栏中显示实时警报。我想通知服务器端的hub类这个函数,以便执行类似的操作
HubProxy.Invoke("Functionname", parameter1, Parameter2)
在我的Hub类中,我编写了以下代码:
private hubConnection = New HubConnection("")
private MyHub As IHubProxy = hubConnection.CreateHubProxy("MyHub")
我不知道如何
如何编写单元测试来测试集线器
这是我的集线器类:
public class MyHub : Hub
{
private readonly ILifetimeScope _scope;
private readonly IMyProvider _provider;
public MyHub(ILifetimeScope scope)
{
scope = _scope;
_provider = _scope.Resolve<IM
请帮帮我。我们的aps.net web应用程序使用SignalR作为通知程序,它使用一个集线器,在一个页面上运行良好,但当我将以下代码行添加到MainSite时。Master:
<script type="text/javascript">
jQuery(document).ready(function (jQuery) {
var notifyHub = jQuery.connection.notificationHub;
jQue
我在同一个域下有两个应用程序&配置了signar
我在App1上设置了我的中心类(服务器asp.net c#类)。
我在App1和App2上安装了signarjavascript客户端。
对于App2,我正在连接到集线器,设置在App1(作为javascript src=/mydomain/App1/SignalR/hubs包含在我的索引html文件中)
当我尝试从服务器向客户端(app1和app2)发送消息时,我只能在app1中看到它,而不能在app2中看到它。但当我从客户端app2向服务器a
如何确定连接是否在服务器上使用WebSocket、SSE、foreverframe或long轮询?您可以通过从集线器中的查询字符串获取来确定传输方法,如下所示:
string transport = Context.QueryString["transport"];
可能重复的
我花了很长时间试图弄清楚在使用JavaScript客户端时如何使用SignalR进行AMS身份验证
我下载了Azure移动服务的JavaScript客户端,我已经在AMS上安装了Signal R,这一切都已经连接好,准备就绪。我有身份验证设置
实际上,我可以在AMS JS客户端上调用.login(“microsoftaccount”),并完成该过程,然后返回令牌和id
我不知道的是如何将两者联系起来
我尝试调用$.connection.hub.Start()-它给我401。我尝试将令牌放入查询字
我使用SignalR在web应用程序(使用Asp.net MVC构建)中显示屏幕通知
我的问题是如何向一组特定的用户显示通知,例如,向所有具有reader角色的用户显示屏幕上的通知?。与角色关联的角色和用户在数据库中定义
我在文档中读过,其中提到了关于组的内容。但我不知道如何使用它。正如你所说,其中一种方法是使用
基本上,当您启动到SignalR hub的连接时,还可以根据帐户类型将该用户包括在组中(尝试不将该用户包括在基于客户端函数调用的组中,在服务器上执行)
因此,每次用户连接时,您都可以覆
如何创建到客户端,最初通过信号器集线器“握手”,然后直接与浏览器通信?我记得几年前,@damianedwards在一个(ch9?)播客中提到了一个类似的解决方案,但找不到。@davidfowler建议小心,让webrtc通过互联网进行通信是一个小把戏。对于同一网络中的浏览器,设置起来很简单。此外,如果任何浏览器都不支持webrtc,那么您的代码应该准备好退回到客户机-服务器-客户机模式。
我通常使用ASP.NETMVC进行开发,但我对Blazor非常陌生。我正在Blazor WebAssembly中创建一个新站点。我需要做的第一件事就是用一个简单的表单创建一个页面,该表单可以创建或更新一个项目,并将其发送到服务器,保存在数据库中。我可以使用signar发送对象,也可以使用HttpClient将其发布到控制器操作。Blazor Wasm的最佳实践是什么?一开始我很想一直用信号器
我见过两种方法都使用的例子,但很少有助于决定在什么情况下使用哪种方法。这是我能找到的最有用的东西,但它不
如何利用PersistenConnection上的跟踪
public class Connection : PersistentConnection
{
protected override Task OnConnectedAsync(IRequest request, string connectionId)
{
Trace.TraceInformation("ConnectedAsync ConnectionId:{0}", connectionId);
我正在创建一个web仪表板,它将显示测试环境的状态
我使用一个集线器将浏览器连接到服务器,并有一个后台任务轮询环境的状态。我只想在至少连接了一个客户端时执行此检查
我的集线器看起来有点像这样:
public class StatusHub : Hub
{
private static int connectionCount = 0;
public override Task OnConnected()
{
Interlocked.Increment(re
介绍如何从集线器外部通过集线器进行广播。但是,这将调用客户端操作:
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.Group(group).addMessage(message);
var context=GlobalHost.ConnectionManager.GetHubContext();
context.Clients.Group(Group).addMe
我希望能够自定义在服务器发生异常时传递给客户端的错误对象
我在客户端上使用“then”函数来处理成功和失败:
hub.server.login(username, password).then(function(result) {
// use 'result'
}, function(error) {
// use 'error'
});
如果登录成功,“result”是服务器上登录方法的返回值。如果登录失败,我抛出一个“CustomException”异常。这是具有“Cod
我有以下JS正在工作:
var chat = $.connection.appHub;
我的应用程序只有一个hub,AppHub,它处理两种类型的通知—聊天和其他。我使用单个集线器,因为我需要随时访问所有连接
我需要能够通过以下类似的方式来判断连接的OnConnected是哪种类型:
[Authorize]
public class AppHub : Hub {
private readonly static ConnectionMapping<string> _chatC
我需要能够有一个聊天,在一个组内,将有两个成员,其中一个将能够发送消息给另一个,只在一个方向
我正在努力
Clients.Group(group).User(user)
但是组没有用户方法它帮助浏览类成员
Clients.OthersInGroup(group)
我正在使用信号集线器处理来自DNN门户的服务器请求。在DNN中对来自Signaler的客户端请求进行身份验证的最佳方法是什么?是否有可能以类似于WebAPI的DNN实现如何使用服务框架的方式来实现这一点,或者是否有其他方法?您是否成功地实现了这一点?我希望自己实现这一点,但找不到任何信息。
我想知道我是否可以在没有OWIN的情况下在IIS中托管SignalR应用程序。如果没有,原因是什么?IIS不能满足信号器托管建议吗?为什么在将Microsoft.AspNet.signar软件包安装到Web应用程序项目时,Microsoft.Owin软件包会自动安装?否,没有Owin,您无法使用signar 2.x。OWIN对主机/服务器进行抽象,并防止将特定于服务器的概念泄漏到信号器代码中。这允许在IIS中使用SignalR,但也可以在命令行应用程序中自行托管它。谢谢。您认为,IIS中的hos
ASP.NET Signal如何在客户端工作
它是否使用Javascript循环计时器
例如:javascript每100毫秒检查一次来自服务器的最新状态/消息?变量太多,无法回答该问题。许多因素取决于您的连接方式、服务器支持的内容以及客户端支持的内容。您的浏览器可能支持也可能不支持Web套接字,这通常是最理想的连接。例如,与长轮询相比,这会改变答案
我建议在官方网站上阅读。下面是链接,特别是JavaScript客户端指南
这取决于用于连接的传输方法的类型。信号器尝试WebSocket、服务器发
我使用的是信号器/持久连接,而不是集线器
我想从服务器向客户端发送消息。我有客户端id来发送它,但如何才能从服务器向客户端发送消息
例如,当服务器上发生某个事件时,我们希望向特定用户发送通知
有什么想法吗?该页面显示了如何使用PersistentConnections实现这一点
public class MyConnection : PersistentConnection {
protected override Task OnReceivedAsync(string clientId
客户端chat.disconnect为空。有什么原因吗?根据您的代码很难判断您实际在做什么-例如,什么是聊天?然而,我认为您应该看看这个相关的问题/答案:关于“如何确定服务器与SignalR客户端的断开连接?”-它可能会很有用
public Task Disconnect()
{
var context = new HaiTaxiContainer();
var driver = context.OperatorEmployeeSet.Where(o =&
我已经开始使用typescript,这是angular.js和jquery的易于找到的声明(d.ts)文件。但无法为SignalR jquery找到一个
你们能帮帮我吗。我可以创建一个扩展JQuery的接口,但不知何故它不起作用
var hub = $.connection.myHub
它在抱怨连接问题。。。表示“类型为'JQueryStatic'的值上不存在属性'connection'”是否这样:
interface signalR extends JQueryStatic {
c
我们在服务器场上为内部网(500名员工)托管不同的MVC5 web应用程序。我们希望在SQLServerServiceBroker背板上稍微使用Signalr2.2,主要用于服务器广播。我们希望为不同的应用程序使用相同的背板DB,所有应用程序都可以访问背板DB服务器
问题:1-这是为了避免性能方面的问题,我没有看到任何良好的实践指导,而且从技术上看似乎有效。2-如果消息被广播到application1客户端,它是否也会被发送到Application2的客户端?3-为每个应用程序使用单独的背板DB
对于这个问题的一般性质,我感到抱歉。它不是关于如何使用信号器,而是关于如何更好地使用它。我想我已经解决了“如何”的问题,但我对信号器还不熟悉,我担心我可能会以一种不适合扩展的方式使用它
我们的系统将处理应用程序,我们有多个客户端,多个用户使用同一个系统。每个应用程序所需的后端处理可能非常耗时(以分钟、小时甚至几天为单位,但通常只有几分钟),因此我使用SignalR让每个用户不断更新他们正在积极查看的应用程序的进度
应用程序123不需要知道应用程序124的更新,因此我正在为每个应用程序创建一个信号
这是集线器方法
<code>
`public void SendChat()
{
var clients = Clients.All;
clients.sendchat();
}`
</code>
这是客户端方法
<code> ` var chat = $.connection.echo;
这里是函数的代码,非常简单:
[FunctionName("negotiate")]
public static SignalRConnectionInfo Run(
[HttpTrigger(AuthorizationLevel.Anonymous)]
HttpRequest req,
[SignalRConnectionInfo(
ConnectionStringSetting =
在signarhub方法中,我试图检查经过身份验证的用户是否在特定角色中。在平面MVC中,我可以调用user.IsInRole并调用重写RoleProvider的类的GetRolesForUser方法
CustomRoleProvider在web.config中设置为:
<roleManager cacheRolesInCookie="false" defaultProvider="CustomRoleProvider" enabled="true">
<provi
我在IConnected接口上实现Connect()方法,以向正确的组添加新连接。除了一件事之外,这工作得很好:为了将用户添加到正确的组中,我需要发送一个值以在该方法中读取。我尝试将属性添加到客户端中心:
var uIHub = $.connection.uIHub;
uIHub.SessionType = "Edit";
但无法通过Connect方法访问:
if (string.IsNullOrEmpty(Caller.SessionType) || Caller.SessionType =
我正在信号机的集线器中使用这部分代码(接口I已连接)。问题是当我调用Group.Add在Connect方法中,客户机实际上不在该组中,我无法向他发送此组的消息。当我稍后从客户端调用某个方法以在组中注册时,一切都正常。我不明白的是,在这两种方法中(在Connect()中,甚至在registerClientToGroup()中)都有相同的组。添加方法
public System.Threading.Tasks.Task Connect()
{
Groups.Add(this.Context.Co
我有一个恼人的信号错误。在详细介绍我编写的代码之前,我想知道是否有人经历过连续轮询连接
我的客户端正在攻击服务器,服务器正在关闭连接,导致立即尝试连接,出现如下恶性循环:
它实际上导致了拒绝服务攻击
我知道,仅仅根据描述,我可能无法得到一个明确的解决方案,但如果有人经历过这种特殊行为,请告诉我你发现是什么导致了它。是服务器错误还是js错误。。。都是
我正在使用信号器0.5,无法升级
谢谢。仅不支持FYI信号器0.5。很遗憾你不能升级,客户端和服务器都有很多问题。在过去,当一个客户机有两个传输实
我在一个控制台应用程序中托管了一个集线器,并连接了一个WPF应用程序。效果很好。然后,我将中心移动到一个单独的项目中,并将一个引用从宿主添加到新项目中。现在我得到一个500错误,没有其他细节
为了从另一个程序集/命名空间托管集线器,是否需要执行任何不同的操作
编辑:
在开始提问后,我尝试了一些事情。以下是我迄今为止所尝试的:
正在设置HubName属性。-不起作用
将完整命名空间+类传递到
HubConnection.CreateHubProxy。-不起作用
将我的中心类放入同一个项目中,但命
信号器是用于实时连接的传输抽象。不过我还是想知道它是如何根据各种因素决定应该使用哪种运输方式的。
我使用可用的文档进行了一些研究,查找了一些资料来源,并提出了它的工作原理
所以我的实际问题是,下面的流程图是正确的还是我遗漏了什么
更新:
谢谢你的意见!以下是根据您的修复程序更新的版本。但有一件事我仍然不确定:如果没有明确检查是否使用了IE9+,如果不是IE并且不支持SSE,是什么触发了从ForeverFrame到LP的回退
首先是很棒的图表
非常接近!以下是一些修复方法:
Configured
标签: Signalr
signalr-hubsignalr.client
我在继续下载或上载文件(WebClient.DownloadFileAsync | UploadFileAsync或通过HttpWebRequest)并同时调用信号器集线器方法时遇到一些问题:
直到文件加载完成,信号器调用才停止。
看起来是这样的:所有的信号员都在排队。所有排队的调用将进一步执行(文件加载后)
我的代码片段:
hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading sta
我们正在开发一个利用信号器的通知系统。我们需要每个用户能够同时“聆听”多个组
你可以把它想象成新闻提醒。特定用户可能对“政治”、“NBA”和“商业”中的新闻警报感兴趣。每次新闻警报进入这些类别之一时,我们都希望能够通过信号器向用户的浏览器发送通知
我们能为Signal中的每个用户同时“监听”多个组吗?如果是这样,用户在任何给定点可以加入的组数是否有限制?虽然SignalR中的组数没有硬编码限制,但您可能会达到URL大小限制。查看评论,其中重新连接请求失败是因为URL太长,因为客户端订阅了太多的组
我正在Azure函数中使用SignalRConnectionInfo输入绑定。在此绑定中,我需要提供当前主体的userId,但是默认情况下,Azure函数仅支持使用来自App Service Authentication的预定义头,如下例所述:
[功能名称协商]
公共静态信号连接信息协商
[HttpTriggerAuthorizationLevel.Anonymous]HttpRequest请求,
[SignalRConnectionInfoHubName=foo,UserId={headers
调用信号器连接对象上的start时出错
我在一个普通的HTML页面中使用singalr功能
下面是页面中包含的代码和平
<script type="text/javascript" src="Scripts/jquery-1.6.4.js"></script>
<script type="text/javascript" src="Scripts/jquery.signalR-0.5.2.js"></script>
<script src='
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 24 页