2010年6月4号--SGS-RedDwarf之ClientSession
Interface ClientSession
ClientSession对象代表在客户端与服务器之间的一个单例的、已连接的login session。所有实现了ClientSession的类也必须实现Serializable接口。
当一个客户端进入应用程序之后,应用程序的AppListener.loggedIn方法被调用,并且一个代表着当前客户端与服务器之间的新的ClientSession作为其参数。并且从该方法为每一个作为参数的ClientSession返回一个唯一的ClientSessionListener,应用程序会在客户端即ClientSession发送消息或者断开连接或者logs out登出应用程序时,获得通知。为了明确的断开一个ClientSession连接,会调用DataManager.removeObject方法从data manager中移除和该clientsession先关联的clientsession对象。
英文原文(来自RedDwarf Server 0.10.1 External API):
Interface representing a single, connected login session between a client and the server. Classes that implement ClientSession must also implement Serializable.
When a client logs in, the application's AppListener.loggedIn method is invoked with a new ClientSession instance which represents the current connection between that client and the server. By returning a unique ClientSessionListener from the loggedIn method for each given client session, the application will receive notification when a client session sends a message, is disconnected, or logs out. To explicitly disconnect a ClientSession, remove the associated ClientSession object from the data manager using the DataManager.removeObject method.
Interface DataManager
提供方法来管理实现共享和持久化数据。(提供方法实现共享和持久化数据的实现。)被管理的数据时那些实现了ManagedObject和Serializable接口的对象。每一个被管理的对象都和被它所引用的所有可串行化的(Serializable)和notManaged对象一起被分离开来保存。如果一个ManagedObject对象引用另一个ManagedObject对象,那么它就必须通过一个用createReference方法创建的ManagedReference来实现。如果不这样做,也就是说尝试通过标准的引用而不是ManagedReference保存一个managed的对象的引用,那么将会导致ObjectIOException异常的抛出。
绑定与names的Managed对象以及所有它们直接或间接所引用的Managed对象,都是由DataManaged保存的。并且由应用程序决定那些Managed对象是不在需要的并且何时把它们从ManagedData中移除出去。
英文原文:
Provides facilities for managing access to shared, persistent objects. Managed objects are objects that implement the ManagedObject and Serializable interfaces. Each managed object is stored separately along with all of the serializable, non-managed objects it refers to. If a managed object refers to another managed object, it must do so through an instance of ManagedReference, created by the createReference method. Attempting to store a reference to a managed object using a standard reference rather than an instance of ManagedReference will typically result in an ObjectIOException being thrown when the current transaction commits.
Managed objects that are bound to names, and any managed objects they refer to directly or indirectly, are stored by the DataManager. It is up to the application to determine when managed objects are no longer needed and to remove them explicitly from the DataManager using the removeObject method.
分享到:
相关推荐
4. **使用方法** - 首先,你需要在你的项目中引入 `scotty-clientsession` 库。在 `scotty-clientsession-master` 压缩包中,你可以找到库的源代码,可以学习如何集成到你的项目中。 - 创建会话:在 Scotty 的路由...
一个紧凑的Java库,用于在客户端(例如浏览器)而非服务器上安全地维护Web客户端状态。 这解决了使用服务器会话的许多问题,例如超时,内存使用,网络延迟(使用群集)
6. **API使用**:`client-sessions`库的API简洁明了,开发者可以通过`session.set(key, value)`来设置会话属性,`session.get(key)`来读取,以及`session.destroy()`来结束会话。 7. **兼容性**:`client-sessions`...
ClientSession session(root); std::vector<Tensor> outputs; TF_CHECK_OK(session.Run({sum}, &outputs)); // 输出结果 LOG(INFO) [0].flat()(0); return 0; } ``` 以上代码演示了如何在C++中创建一个...
from aiohttp import ClientSession from aio_memcached import Client async def main(): async with Client('localhost', 11211) as client: await client.set('key', 'value') result = await client.get('...
4. **自动处理HTTP首部和编码**:aiohttp自动处理诸如gzip或deflate之类的压缩方法,以及字符集转换,让开发者可以专注于业务逻辑。 5. **易于使用的API**:aiohttp的API设计简洁,易于理解和使用,降低了异步编程...
async with aiohttp.ClientSession() as session: async with session.get('http://example.com') as response: print(await response.text()) ``` 或者创建一个简单的Web服务器: ```python from aiohttp import ...
4. **文档**:在`mongo-go-driver`中,文档由`bson.Document`表示,它是键值对的集合,支持嵌套结构和多种数据类型,包括基本类型、数组、子文档等。 5. **查询和过滤**:通过`mongo.Filter`,开发者可以构建复杂的...
在分布式系统和云原生环境中,限速控制是必不可少的策略之一。例如,在使用Zookeeper这样的分布式协调服务时,为了确保服务的稳定性和可用性,我们需要对客户端的请求进行合理的限速。aiohttp-ratelimiter正是为此...
4. **请求参数管理**:该库支持动态构建请求URL和添加请求头,使得处理复杂API接口变得更加简单。 5. **会话管理**:aio-apiclient提供会话对象,可以保存和复用连接,优化了对同一服务的连续请求。 6. **自定义...
4. **批量请求**:支持一次性发送多个请求,减少网络开销,提高效率。 5. **并发性**:可以同时处理多个客户端请求,增加系统吞吐量。 使用`pip`工具,你可以直接安装`aiorpcX-0.13.0-py3-none-any.whl`文件,命令...
例如,你可以使用`ClientSession`类创建一个持久的会话,用于管理多个请求之间的连接和状态,这样可以提高性能并减少网络延迟。 另一方面,`aiohttp`的服务器部分则允许开发者快速地搭建Web应用。它提供了一套强大...
async with aiohttp.ClientSession() as session: html = await fetch(session, 'http://example.com') print(html) loop = asyncio.get_event_loop() loop.run_until_complete(main()) ``` 以上代码创建了一个...
- "3.4.2"表示aiohttp的版本号,此版本修复了一些已知问题并提供了新的特性。 - "cp36"代表该版本兼容Python 3.6解释器。 - "cp36m"中的"m"表示这是包含微优化的版本。 - "win32"则表明该版本是为32位Windows系统...
4. **JSON和表单处理**:aiohttp内置了对JSON和表单数据的解析,使得处理Web服务的输入和输出变得简单。 5. **异步流处理**:aiohttp提供了对大文件上传和下载的支持,可以通过异步流处理来避免内存占用过大。 **...
ws.clientSession(URL) 创建一个新的websocket会话。 该url的格式可以为“ ws:// localhost”,也可以作为对象传递。 它基于 。 ws.clientSession与libchan不兼容。 多亏了该方法也可以在浏览器中工作。 例子...
async with aiohttp.ClientSession() as session: html = await fetch(session, 'http://example.com') print(html) loop = asyncio.get_event_loop() loop.run_until_complete(main()) ``` 五、注意事项 在...
4. **Flask-aiohttp结合** Flask-aiohttp是将Flask与aiohttp相结合的扩展,它为Flask应用引入了异步支持。这意味着你可以使用Flask的路由和视图函数结构,同时利用aiohttp的非阻塞I/O特性。这使得开发高性能、高...
4. `README.md`:项目介绍和使用指南,通常会详细解释如何安装和使用库。 5. `LICENSE`:许可证文件,定义了库的使用许可条款。 `aioauth-client`库的主要特性包括: - **异步支持**:基于Python的asyncio库,提供...
async with aiohttp.ClientSession() as session: html = await fetch(session, 'http://example.com') print(html) loop = asyncio.get_event_loop() loop.run_until_complete(main()) ``` 这个例子展示了如何...