- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Cocoa 客户端和服务器应用程序,它们使用通过 NSSocketPorts 和 NSConnections 以标准方式实现的分布式对象进行通信。服务器向客户端应用程序提供单个对象,其中可能有多个。每个客户端应用程序都可以通过自己的代理来访问同一分布式对象。
出售的对象支持特定的协议(protocol),其中包括类似于以下的方法:
@protocol VendedObjectProtocol
- (void) acquireServerResource:(ServerResourceID)rsc;
@end
当客户端应用程序调用此方法时,服务器应该将请求的资源分配给该客户端应用程序。但可能有多个客户端请求相同的资源,服务器需要跟踪哪些客户端请求了它。
我希望能够在服务器端执行的操作是确定客户端方法调用所使用的 NSConnection。我怎样才能做到这一点?
我想到的一种方法是(服务器端):
- (void) acquireServerResource:(ServerResourceID)rsc withDummyObject:(id)dummy {
NSConnection* conn = [dummy connectionForProxy];
// Map the connection to a particular client
// ...
}
但是,我真的不希望客户端出于没有真正目的的目的而必须传递虚拟对象(从客户端的角度来看)。我可以将 ServerResourceID 设为一个类,以便它作为代理传递,但我也不想真正这样做。
在我看来,如果我使用原始套接字进行通信,我将能够找出消息来自哪个套接字,因此能够确定哪个客户端发送了它,而不需要客户端发送任何内容特别作为消息的一部分。我需要一种通过分布式对象方法调用来做到这一点的方法。
任何人都可以建议一种执行此操作的机制吗?
最佳答案
您正在寻找的是NSConnection的delegate方法。例如:
- (BOOL)connection:(NSConnection *)parentConnection shouldMakeNewConnection:(NSConnection *)newConnnection {
// setup and map newConnnection to a particular client
id<VendedObjectProtocol> obj = //...
obj.connection = newConnection;
return YES;
}
您可以为每个单独的连接设计一个对象(如 VendObjectProtocol)并通过 self.connection 获取连接。
- (void) acquireServerResource:(ServerResourceID)rsc {
NSConnection* conn = self.connection;
// Map the connection to a particular client
// ...
}
或者
您可以使用 +createConversationForConnection 来使用对话 token :和+currentConversation
关于cocoa - 如何找到特定分布式对象方法调用的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6311820/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!