Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket Can';t使用rosbridge建立与Web服务器的连接_Websocket_Ros - Fatal编程技术网

Websocket Can';t使用rosbridge建立与Web服务器的连接

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

我创建了一个简单的HTML页面,用
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
现在您已经启动并运行了这些,您需要提供html/javascript文件(例如simple.html)并启动服务等。例如,您可以通过使用提供simple.html,请参见下面的示例(例如simplehttpserver_test.py):

运行simplehttpserver_test.py后,可以在127.0.0.1:9089上打开浏览器,应该可以让它正常工作


请注意,它提供来自当前目录及以下目录的文件,直接将目录结构映射到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
现在您已经启动并运行了这些,您需要提供html/javascript文件(例如simple.html)并启动服务等。例如,您可以通过使用提供simple.html,请参见下面的示例(例如simplehttpserver_test.py):

运行simplehttpserver_test.py后,可以在127.0.0.1:9089上打开浏览器,应该可以让它正常工作


请注意,它提供来自当前目录及以下目录的文件,直接将目录结构映射到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()