onos2.2中前后端通信方法(基于WebSockt)
1.了解WebSocket协议:
RFC6455: https://tools.ietf.org/html/rfc6455#section-5.2
WebSocket
对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的 API: https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket
WebSocket从入门到精通:https://www.jianshu.com/p/a5aee2cfe6d4
webSocket最简单实践--最简单聊天功能: https://www.jianshu.com/p/bc7b021ff4ba
WebSocket 教程: http://www.ruanyifeng.com/blog/2017/05/websocket.html
HTML5 WebSocket:https://www.runoob.com/html/html5-websocket.html
WebSocket 协议本质上是一个基于 TCP 的协议。 为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。
说到 websocket 我觉得有必要说下跟 socket 的区别。软件通信有七层结构,下三层结构偏向与数据通信,上三层更偏向于数据处理,中间的传输层则是连接上三层与下三层之间的桥梁,每一层都做不同的工作,上层协议依赖与下层协议。基于这个通信结构的概念。Socket 其实并不是一个协议,是应用层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口。当两台主机通信时,让 Socket 去组织数据,以符合指定的协议。TCP 连接则更依靠于底层的 IP 协议,IP 协议的连接则依赖于链路层等更低层次。WebSocket 则是一个典型的应用层协议。总的来说:Socket 是传输控制层协议,WebSocket 是应用层协议。
2.理清onos2.2中roadm app的函数功能和通信方式:
1) UiMessageHandler
https://github.com/opennetworkinglab/onos/blob/master/core/api/src/main/java/org/onosproject/ui/UiMessageHandler.java