Rosbridge系列1:WebSocket 介绍

1. 适用场景
机器人需要一个完整的系统,至少要包含上位机,下位机,在云端应用时,可能还包含一个云端服务器。最简单的应用,上位机需要实时监控机器人状态,远程遥控动作,此时上下位机需要通信功能,可以采用C/S、B/S架构,可以选择自己搭建或者采用现有的解决方案,而Rosbridge提供了完美的解决方案。
Rosbridge 采用WebSocket协议(仅有Server端,但可以双向通信)。以一个独立节点的运行,可以做为外部与ROS系统通信的桥梁,实现外部与ROS系统通信解耦。外部系统可通过浏览器与ROS交互。

2.Websocket 的特点

Websocket 是OSI或者TCP/IP中应用层的协议,类似于HTTP协议,采用ws或者wss(https)开头,端口号一般与http相同(普通为80,https/wss为443),rosbridge中,一般默认9090端口。
websocket 在2011年成为国际标准,目前大部分浏览器均支持此协议。
websocket 最大的优势是 支持BS双端主动动作。HTTP只能由B(客户)端主动请求,websocket可由服务器端主动发送数据。

3.Websocket 的属性
webSocket.readyState包含:

	CONNECTING:值为0,表示正在连接。
	OPEN:值为1,表示连接成功,可以通信了。
	CLOSING:值为2,表示连接正在关闭。
	CLOSED:值为3,表示连接已经关闭,或者打开连接失败。

4.Websocket 的回调函数

onopen:用于 连接成功后的回调函数
onclose:用于 连接关闭后的回调函数。
onmessage:用于 收到数据后的回调函数。
onerror: 用于 通信错误的回调函数。

另外,还有一个主动发送函数

send:用于 发送数据。

具体介绍请看:
WebSocket 教程
HTML5 WebSocket

想了解WebSocket,HTTP,TCP等,请看:
TCP/IP和Socket的关系
带你了解TCP/IP,UDP,Socket之间关系
HTTP、TCP、UDP,Socket,HTTPS(史上最强理解,没有之一)
TCP、UDP、HTTP、SOCKET、WebSocket之间的区别

你可能感兴趣的:(rosbrige)