rosbridge_suite入门教程-rosbridge_server代码解读
rosbridge_suite入门教程-rosbridge_server代码解读
说明:
- 介绍rosbridge_server提供的多种服务器模式及实现
代码目录结构:
├── CHANGELOG.rst
├── CMakeLists.txt
├── launch #启动
│ ├── rosbridge_tcp.launch #启动TCP服务器,调用rosbridge_tcp.py
│ ├── rosbridge_udp.launch #启动UDP服务器,调用rosbridge_udp.py
│ └── rosbridge_websocket.launch #启动WEBSOCKET服务器,调用rosbridge_websocket.py
├── package.xml
├── scripts
│ ├── rosbridge_tcp -> ./rosbridge_tcp.py
│ ├── rosbridge_tcp.py #ros TCP节点, 利用SocketServer实现TCP通讯
│ ├── rosbridge_udp -> rosbridge_udp.py
│ ├── rosbridge_udp.py #ros UPD节点,利用reactor.listenUDP实现UDP通讯
│ ├── rosbridge_websocket -> rosbridge_websocket.py
│ └── rosbridge_websocket.py #ros websocket节点,利用tornado.web实现websocket通讯
├── setup.py
└── src
├── backports
│ ├── __init__.py
│ └── ssl_match_hostname
│ ├── __init__.py
│ ├── LICENSE.txt
│ └── README.txt
├── rosbridge_server #服务器处理
│ ├── __init__.py
│ ├── tcp_handler.py #实现RosbridgeTcpSocket类,用于处理TCP消息
│ ├── udp_handler.py #实现RosbridgeUdpFactory类和RosbridgeUdpSocket类,用于处理UDP消息
│ ├── websocket_handler.py #实现RosbridgeWebSocket类,用于处理websocket消息
└── tornado #Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本
├── auth.py
├── autoreload.py
├── concurrent.py
├── curl_httpclient.py
├── escape.py
├── gen.py
├── http1connection.py
├── httpclient.py
├── httpserver.py
├── httputil.py
├── __init__.py
├── ioloop.py
├── iostream.py
├── locale.py
├── log.py
├── log.pyc
├── netutil.py
├── options.py
├── platform
│ ├── asyncio.py
│ ├── auto.py
│ ├── auto.pyc
│ ├── caresresolver.py
│ ├── common.py
│ ├── epoll.py
│ ├── epoll.pyc
│ ├── __init__.py
│ ├── interface.py
│ ├── kqueue.py
│ ├── posix.py
│ ├── select.py
│ ├── twisted.py
│ └── windows.py
├── process.py
├── simple_httpclient.py
├── speedups.c
├── stack_context.py
├── tcpclient.py
├── tcpserver.py
├── template.py
├── test
│ ├── auth_test.py
│ ├── concurrent_test.py
│ ├── csv_translations
│ │ └── fr_FR.csv
│ ├── curl_httpclient_test.py
│ ├── escape_test.py
│ ├── gen_test.py
│ ├── gettext_translations
│ │ └── fr_FR
│ │ └── LC_MESSAGES
│ │ ├── tornado_test.mo
│ │ └── tornado_test.po
│ ├── httpclient_test.py
│ ├── httpserver_test.py
│ ├── httputil_test.py
│ ├── import_test.py
│ ├── __init__.py
│ ├── ioloop_test.py
│ ├── iostream_test.py
│ ├── locale_test.py
│ ├── log_test.py
│ ├── __main__.py
│ ├── netutil_test.py
│ ├── options_test.cfg
│ ├── options_test.py
│ ├── process_test.py
│ ├── README
│ ├── resolve_test_helper.py
│ ├── runtests.py
│ ├── simple_httpclient_test.py
│ ├── stack_context_test.py
│ ├── static
│ │ ├── dir
│ │ │ └── index.html
│ │ └── robots.txt
│ ├── tcpclient_test.py
│ ├── templates
│ │ └── utf8.html
│ ├── template_test.py
│ ├── test.crt
│ ├── testing_test.py
│ ├── test.key
│ ├── twisted_test.py
│ ├── util.py
│ ├── util_test.py
│ ├── websocket_test.py
│ ├── web_test.py
│ └── wsgi_test.py
├── testing.py
├── util.py
├── web.py
├── websocket.py
└── wsgi.py
重要文件说明:
SocketServer
- SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端
- https://docs.python.org/2/library/socketserver.html
- http://www.cnblogs.com/zhangkui/p/5655428.html
- http://blog.csdn.net/ghostfromheaven/article/details/8653421
Twisted/reactor
- Twisted 是用Python实现的基于事件驱动的网络引擎框架
- http://www.cnblogs.com/whiggzhaohong/p/5401679.html
- http://www.tuicool.com/articles/MJBviuM
tornado
- Tornado是FriendFeed使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本
- http://www.tornadoweb.cn/
- http://www.tornadoweb.cn/documentation
- http://www.tornadoweb.org/en/stable/
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号