OBIX 的WebSocket 绑定出现在OBIX 1.1 规范中,所有的OBIX 服务器必须包含一个实现obix:lobby 的对象。Lobby 对象用作obix 服务器的中心入口点,并列出由OBIX 规范定义的已知对象的URI。理论上,一个客户机需要知道的所有潜在组件都是一个大厅实例的URI。按照惯例,这个URI 形如“http://<server ip address>/obix”,当然服务者也可以自由选择另一个URI,Lobby 合同样例如下:
因为Lobby 对象是OBIX 服务器的主要入口点,所以它也成为恶意对象的主要实体攻击点。有鉴于此,OBIX 服务器的实现人员必须仔细考虑如何解决安全问题。在提供任何信息或执行任何请求的操作之前,服务器应确保客户机经过正确的身份验证和授权。即使提供Lobby 信息也可以显著增加OBIX 服务器的攻击面,例如,恶意客户端可以使用批处理服务发出进一步的请求,或者引用“关于”部分中的项目来搜索Web,以查找与服务器供应商关联的任何的漏洞。
WebSocket 绑定指定一个简单的obix 请求到WebSocket 的映射,在连接到端点URL 并切换到WebSocket 协议(或类似于MQTT 之类的可识别子协议)之后,可以连续交换消息。WebSocket 绑定应在Lobby 中进行以下声明,示例如下:
(www.xing528.com)
表7-5 描述了OBIX 请求及其WebSocket 等效项的映射,由于WebSocket是一种基于消息的协议,它不能直接映射,但是由于OBIX 消息包含命名,可以使用这种协议发送消息。
表7-5 OBIX 请求与WebSocket 操作映射
为了确保WebSocket 异步消息交换中的请求和响应绑定在一起,引入了定义了请求ID(表示为属性RID)的请求概念。对请求的响应包含特定的请求ID,以便客户机能够匹配请求和响应。如果服务器发送的消息没有请求和响应上下文,那么它使用obix:update 类型来表示这种情况。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。