OpenHiva::Node::CreateServer
产品支持情况
产品  | 
是否支持  | 
|---|---|
x  | 
|
x  | 
|
√  | 
|
x  | 
|
x  | 
|
x  | 
功能说明
创建Service的服务端。
函数原型
1 | template <typename ReqType, typename ResType> std::shared_ptr<OpenHiva::ServiceServer> CreateServer(const std::string &serviceName, const OpenHiva::ServiceOptions &serviceOptions, const std::function<bool(ReqType, ResType)> &serviceCallback)  | 
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
serviceName  | 
输入  | 
服务名。  | 
serviceOptions  | 
输入  | 
Service属性配置,详见OpenHiva::ServiceOptions类型定义。  | 
serviceCallback  | 
输入  | 
Server收到消息后调用的回调函数,用于处理Client端发布的消息。  | 
返回值
返回OpenHiva::ServiceServer对象,可通过该对象完成服务端的初始化及资源释放。
约束说明
- 服务名必须全局唯一,不可重复不可同名。
 - 对于同一个服务,客户端和服务端的参数serviceName、serviceOptions必须完全一致。
 - 调用时必须确保入参正确,按约束使用,回调函数必须判断长度,不可越界。
 - 按serviceName拼接其他字符串来创建共享内存文件,需符合文件命名规则。
 - 一个服务端只起一个线程,回调处理是串行的,不同服务的回调处理是并行的。
 - 服务端处理太慢可能会导致客户端超时。
 - 由于涉及共享内存文件读写,服务端进程和客户端进程的用户权限必须相同,否则可能通信失败。
 - ReqType描述请求的消息类型,必须是HivaMessage的子类。
 - ResType描述响应的消息类型,必须是HivaMessage的子类。
 
父主题: OpenHiva::Node接口