Websocket Can';t使用rosbridge建立与Web服务器的连接
我创建了一个简单的HTML页面,用Websocket Can';t使用rosbridge建立与Web服务器的连接,websocket,ros,Websocket,Ros,我创建了一个简单的HTML页面,用roslaunch-rosbridge\u server-rosbridge\u-websocket.launch在本教程之后控制一个模拟露台Turtletbot的移动 但是,在HTML页面(F12)的Web控制台中显示错误“Firefox无法在ws://localhost:9090/”我正在使用websocket(9090)的默认rosbridge。在终端中,我还接收到错误: [-]WebSocket打开握手失败('WebSocket连接被拒绝:不允许原始'n
roslaunch-rosbridge\u server-rosbridge\u-websocket.launch
在本教程之后控制一个模拟露台Turtletbot的移动
但是,在HTML页面(F12)的Web控制台中显示错误“Firefox无法在ws://localhost:9090/”我正在使用websocket(9090)的默认rosbridge。在终端中,我还接收到错误:
[-]WebSocket打开握手失败('WebSocket连接被拒绝:不允许原始'null')
[-]正在断开与对等tcp4:127.0.0.1:41290的连接,中止=False:WebSocket连接被拒绝:不允许源“null”
有人对我如何解决这个问题有什么建议吗?鉴于您已遵循ROS教程并创建了如中所示的HTML文件,那么您必须运行:
runcore
rosrun rospy\u教程添加两个ints\u服务器
roslaunch rosbridge\u服务器rosbridge\u websocket.launch
请注意,它提供来自当前目录及以下目录的文件,直接将目录结构映射到HTTP请求,这意味着simple.html应该与simplehttpserver_test.py位于相同(或更低)目录中。最后,simplehttpserver_test.py的端口应不同于Rosbridge WebSocket服务器所使用的端口(例如,默认值为9090)。如果您已遵循ROS教程并创建了如中所示的HTML文件,则必须运行:
runcore
rosrun rospy\u教程添加两个ints\u服务器
roslaunch rosbridge\u服务器rosbridge\u websocket.launch
请注意,它提供来自当前目录及以下目录的文件,直接将目录结构映射到HTTP请求,这意味着simple.html应该与simplehttpserver_test.py位于相同(或更低)目录中。最后,simplehttpserver_test.py的端口应该与Rosbridge WebSocket服务器使用的端口不同(例如,默认值为9090)。您是否尝试过使用python-m simplehttpserver为您的html/javascript文件提供服务?我不完全确定如何做到这一点,如何将SimpleHTTPServer连接到HTML文件?您是否尝试过使用python-m SimpleHTTPServer为您的HTML/javascript文件提供服务?我不完全确定如何做到这一点,如何将SimpleHTTPServer连接到HTML文件?您好,此方法有效,谢谢!但是有没有一种方法可以让我不用像这样使用SimpleHTTPServer,因为我仍然有问题中的原始问题!但是有没有一种方法可以让我不必像以前那样使用SimpleHTTPServer,因为我仍然有问题的原始问题。
#!/usr/bin/env python
import SimpleHTTPServer
import SocketServer
class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.path = '/simple.html'
return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
Handler = MyRequestHandler
server = SocketServer.TCPServer(('127.0.0.1', 9089), Handler)
server.serve_forever()