Overview
VSOA 是由 ACOINFO 提供的 Vehicle SOA 的缩写,VSOA 提供了一个可靠的实时 SOA (Service Oriented Architecture) 框架,该框架具有多语言和多环境的实现,开发人员可以使用该框架来构建分布式服务模型。
VSOA 当前版本包含以下特征:
- 支持统⼀的 URL 资源标记
- 支持 URL 匹配订阅和发布模型
- 支持实时远程过程调用
- 支持并行多命令序列
- 支持多路全双工高速并行数据流
- 支持网络 QoS 控制
- 轻松实现服务器容错设计
- 支持多种编程语言绑定
- 支持 IPv4/IPv6 双栈
- 支持中间件模型
VSOA 是一种双通道通信协议,同时使用 TCP 和 UDP,其中标记为 quick
的 API 使用 UDP 通道。快速通道用于高频数据更新通道。由于数据更新频率高,对通信可靠性的要求并不严格。需要注意的是,UDP 通道不能通过 NAT 网络,所以请不要在 NAT 网络中使用快速通道。
VSOA 数据包内 url 和 payload 总长度不能超过 256KB - 20B,且快速通道下的总长度不超过 65507B - 20B,因此如果需要发送大量数据,可以使用 VSOA 数据流。
注意:当前版本不支持安全加密。
Support
下表为vsoa
库应用程序接口。
The following shows vsoa
library APIs.
API | Header File | Library |
---|---|---|
vsoa_server_create | vsoa_server.h | libvsoa-server.so |
vsoa_server_close | vsoa_server.h | libvsoa-server.so |
vsoa_server_passwd | vsoa_server.h | libvsoa-server.so |
vsoa_server_start | vsoa_server.h | libvsoa-server.so |
vsoa_server_address | vsoa_server.h | libvsoa-server.so |
vsoa_server_bind_if | vsoa_server.h | libvsoa-server.so |
vsoa_server_set_custom | vsoa_server.h | libvsoa-server.so |
vsoa_server_custom | vsoa_server.h | libvsoa-server.so |
vsoa_server_fds | vsoa_server.h | libvsoa-server.so |
vsoa_server_input_fds | vsoa_server.h | libvsoa-server.so |
vsoa_server_on_cli | vsoa_server.h | libvsoa-server.so |
vsoa_server_count | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_close | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_is_subscribed | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_address | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_reply | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_priority | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_keepalive | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_array | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_send_timeout | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_set_authed | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_authed | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_set_custom | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_custom | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_datagram | vsoa_server.h | libvsoa-server.so |
vsoa_server_cli_quick_datagram | vsoa_server.h | libvsoa-server.so |
vsoa_server_on_datagram | vsoa_server.h | libvsoa-server.so |
vsoa_server_is_subscribed | vsoa_server.h | libvsoa-server.so |
vsoa_server_publish | vsoa_server.h | libvsoa-server.so |
vsoa_server_quick_publish | vsoa_server.h | libvsoa-server.so |
vsoa_server_add_listener | vsoa_server.h | libvsoa-server.so |
vsoa_server_remove_listener | vsoa_server.h | libvsoa-server.so |
vsoa_server_stream_create | vsoa_server.h | libvsoa-server.so |
vsoa_server_stream_accept | vsoa_server.h | libvsoa-server.so |
vsoa_server_stream_close | vsoa_server.h | libvsoa-server.so |
vsoa_mware_create | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_delete | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_handler | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_add_listener | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_remove_listener | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_add_resolve_data | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_get_resolve_data | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_set_custom | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_custom | vsoa_mware.h | libvsoa-server.so |
vsoa_mware_get | vsoa_mware.h | libvsoa-server.so |
vsoa_client_create | vsoa_client.h | libvsoa-client.so |
vsoa_client_close | vsoa_client.h | libvsoa-client.so |
vsoa_client_connect | vsoa_client.h | libvsoa-client.so |
vsoa_client_is_connect | vsoa_client.h | libvsoa-client.so |
vsoa_client_path_token | vsoa_client.h | libvsoa-client.so |
vsoa_client_send_timeout | vsoa_client.h | libvsoa-client.so |
vsoa_client_fds | vsoa_client.h | libvsoa-client.so |
vsoa_client_input_fds | vsoa_client.h | libvsoa-client.so |
vsoa_client_ping | vsoa_client.h | libvsoa-client.so |
vsoa_client_subscribe | vsoa_client.h | libvsoa-client.so |
vsoa_client_unsubscribe | vsoa_client.h | libvsoa-client.so |
vsoa_client_multi_subscribe | vsoa_client.h | libvsoa-client.so |
vsoa_client_multi_unsubscribe | vsoa_client.h | libvsoa-client.so |
vsoa_client_call | vsoa_client.h | libvsoa-client.so |
vsoa_client_datagram | vsoa_client.h | libvsoa-client.so |
vsoa_client_quick_datagram | vsoa_client.h | libvsoa-client.so |
vsoa_client_on_datagram | vsoa_client.h | libvsoa-client.so |
vsoa_client_set_custom | vsoa_client.h | libvsoa-client.so |
vsoa_client_custom | vsoa_client.h | libvsoa-client.so |
vsoa_client_stream_create | vsoa_client.h | libvsoa-client.so |
vsoa_client_stream_close | vsoa_client.h | libvsoa-position.so |
vsoa_client_sync_create | vsoa_client.h | libvsoa-position.so |
vsoa_client_sync_delete | vsoa_client.h | libvsoa-position.so |
vsoa_client_sync_call | vsoa_client.h | libvsoa-position.so |
vsoa_position_server_create | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_close | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_start | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_fd | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_input | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_response | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_set_custom | vsoa_position.h | libvsoa-position.so |
vsoa_position_server_custom | vsoa_position.h | libvsoa-position.so |
vsoa_position_lookup | vsoa_position.h | libvsoa-position.so |
vsoa_position_lookup_server | vsoa_position.h | libvsoa-position.so |
vsoa_parser_init_header | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_init_recv | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_fixp_length | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_get_length | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_set_tunid | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_set_url | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_set_payload | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_get_url | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_get_payload | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_input | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_print_header | vsoa_parser.h | libvsoa-parser.so |
vsoa_parser_set_seqno | vsoa_parser.h | - |
vsoa_parser_get_seqno | vsoa_parser.h | - |
vsoa_parser_get_type | vsoa_parser.h | - |
vsoa_parser_get_flags | vsoa_parser.h | - |
vsoa_parser_get_status | vsoa_parser.h | - |
vsoa_parser_get_tunid | vsoa_parser.h | - |
vsoa_parser_get_url_len | vsoa_parser.h | - |
vsoa_parser_get_param_len | vsoa_parser.h | - |
vsoa_parser_get_data_len | vsoa_parser.h | - |
VSOA_PARAM_SYNCER_PUBLISH | vsoa_syncer.h | - |
VSOA_PARAM_SYNCER_RPC | vsoa_syncer.h | - |