设置到Orleans的连接
框架提供一个客户端库,来让Orleans外的应用于grain进行通信。 刻个客户端库可以被桌面或者移动应用使用,或者渲染web页的前段服务器使用或者暴露一个web服务API。 客户端库提供了编写与Orleans grain通信的异步客户端所需的API。 一旦客户端库连接上Orleans的网关,客户端可以发送消息给grain,收取响应并且通过观察者收取来自grain的异步通知。
连接网关
客户端调用GrainClient.Initialize()
建立一个连接。
这会连接到 ClientConfiguration.xml 文件中指定的IP地址和端口的网关silo。
这个文件必须与客户端使用的 Orleans.dll 放在相同目录。
一个替代方案是,可以以编程的方式传递一个配置对象给GrainClient.Initialize()
而不是从文件读取。
配置客户端
在_ClientConfiguration.xml_中,Gateway
指定网关终结点的IP地址和端口,需要与silo的_OrleansConfiguration.xml_配置一致。
<ClientConfiguration xmlns="urn:orleans">
<Gateway Address="<IP address or host name of silo>" Port="30000" />
</ClientConfiguration>
如果一个基于Orleans的应用运行在Windows Azure中,客户端自动发现silo网关并且不应该被静态配置。 参考Azure应用示例中的例子来学习怎么配置客户端。
配置Silo
在_OrleansConfiguration.xml_中的ProxyingGateway
元素指定silo的网关终结点,与Networking
元素定义的内部终结点不同并且必须有不同的端口号:
<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
<Defaults>
<Networking Address="" Port="11111" />
<ProxyingGateway Address="" Port="30000" />
</Defaults>
</OrleansConfiguration>