OpenHiva::Node::CreateServer
函数功能
创建Service的服务端。
函数原型
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接口