草庐IT

SignalR-Objc

全部标签

xcode - 暴露给 Objective-C 代码时 Swift 类的名称不遵循 @objc 重命名

给定一个Swift类的声明@objc(NSFoo)publicclassFoo{publicfuncbar()->(){}}根据我对文档的阅读,我希望在Objective-C方面我们能够使用标识符NSFoo来引用此类。这似乎不是我正在发生的事情。ProjectName-Swift.h中生成的定义是:SWIFT_CLASS("NSFoo")@interfaceFoo-(void)bar;-(instancetype)initOBJC_DESIGNATED_INITIALIZER;@end而我所期望的是SWIFT_CLASS("Foo")@interfaceNSFoo...我正在使用Xco

swift 2 : OBJC_ASSOCIATION_RETAIN_NONATOMIC use of unresolved identifier

我刚刚将我的项目更新为Swift2。我使用ObjC关联的swift类之一。我有以下内容:objc_AssociationPolicy(OBJC_ASSOCIATION_RETAIN_NONATOMIC)自更新以来,编译器返回Useofunresolvedidentifier'OBJC_ASSOCIATION_RETAIN_NONATOMIC'。知道为什么吗?编辑:对于那些有同样问题的人,一个临时的解决办法是用它的值替换常量,即。1:objc_AssociationPolicy(rawValue:1) 最佳答案 如果您查看objcru

swift - 非 -'@objc' 方法不满足 '@objc' 协议(protocol)的可选要求

概述:我有一个协议(protocol)P1,它提供了一个Objective-C可选函数的默认实现。当我提供可选函数的默认实现时,会出现警告编译器警告:Non-'@objc'method'presentationController(_:viewControllerForAdaptivePresentationStyle:)'doesnotsatisfyoptionalrequirementof'@objc'protocol'UIAdaptivePresentationControllerDelegate'版本:swift:3Xcode:8(公开发布)做出的尝试:尝试添加@objc但无济

swift - 如何在 Swift 4 中使用 #selector() 处理 @objc 推理弃用?

我正在尝试将项目的源代码从Swift3转换为Swift4。Xcode给我的一个警告是关于我的选择器的。例如,我使用这样的常规选择器将目标添加到按钮:button.addTarget(self,action:#selector(self.myAction),for:.touchUpInside)这是它显示的警告:Argumentof'#selector'referstoinstancemethod'myAction()'in'ViewController'thatdependson'@objc'attributeinferencedeprecatedinSwift4Add'@objc't

c# - "OnDisconnected(): no suitable method found to override"- SignalR

我一直在尝试按照CodeProject(http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room)上的“Asp.NetSignalR聊天室”教程来实现聊天室。但是,我收到错误消息“Hubs.ChatHubs.OnDisconnected():找不到合适的方法来覆盖”ChatHub类:publicclassChatHub:Hub{#regionDataMembersstaticListConnectedUsers=newList();staticListCurrentMessage=newList();#en

c# - 将 Redis 与 SignalR 结合使用

我有一个在服务器A上运行的ASP.NETMVC应用程序和在服务器B上运行的一些Web服务。我已经实现了实时通知,我在服务器A上使用了SignalR。但现在我需要服务器B来还能够将消息发送到服务器A(主要Web应用程序)提供的View。因此,我正在尝试教程here涉及Redis背板。在服务器A的启动中,我添加了以下内容:GlobalHost.DependencyResolver.UseRedis("localhost",6379,string.Empty,"abc");app.MapHubs();在这里,我假设“myApp”表示channel,当我在Redis控制台上运行publisha

c# - 何时调用 SignalR 集线器构造函数?

我正在尝试调试SignalR集线器,并注意到构造函数被多次调用,即使是单个客户端也是如此。这是预期的行为吗?我原以为构造函数只被调用一次以进行类初始化,但我多次遇到断点。 最佳答案 在SignalRHub中,实例将根据每个请求创建。因此,只有一个或多个客户并不重要。事实上Hub是对PersistentConnection的抽象,如果你想更精确地控制幕后发生的事情,你可以使用PersistentConnection。在这里查看:https://github.com/SignalR/SignalR/wiki/PersistentConn

c# - 无法通过 SignalR Hub 访问 session 信息。是我的设计错了吗?

我刚刚发现您无法访问SignalRHub中的当前session。简化我的场景:我试着写一段聊天。当前用户的名称保存在session中。我使用SignalR更新(一组连接)每条新消息。现在我发现我无法通过中心访问当前用户的名称。我想可能有一些变通办法,但我的设计实现是错误的吗?我不应该为此目的使用SignalR吗?或者我不应该以这种方式使用Session吗? 最佳答案 您不应将Session与SignalR一起使用(参见SignalRdoesn'tuseSessiononserver)。您可以通过连接ID来识别逻辑连接,您可以mapt

c# - SignalR:如何从服务器/C# 真正调用集线器的方法

我正在尝试改进我的应用程序,这将需要从C#而不是javascript调用集线器。在我的应用中添加任务的当前工作流程是:调用API将数据添加到数据库将新记录返回给AngularJSController从Controller调用集线器的方法hub适本地向客户广播调用我想要做的是绕过从我的AngularJSController调用集线器的方法,并直接从我的APIController方法调用它。这是我的集线器目前的样子:publicclassTaskHub:Hub{publicvoidInsertTask(TaskViewModeltask){Clients.Caller.onInsertTa

c# - SignalR .Net 客户端 : How do I send a message to a Group?

我正在使用SignalRWiki入门中心页面中的示例聊天应用程序。我已经扩展它以添加组支持并且它工作正常。但是,现在我想从外部控制台应用程序向群组发送消息。这是我的控制台应用程序代码,下面是我的群组代码。如何从代理向群组发送消息?可能吗?//ConsoleAppusingSystem;usingMicrosoft.AspNet.SignalR.Client.Hubs;namespaceSignalrNetClient{classProgram{staticvoidMain(string[]args){//Connecttotheservicevarconnection=newHubCo