Tag: websocket

node.js使用websocket附加一个docker容器

对于docker工人来说是新的,所以在尝试使用WebSocket附加一个docker集装箱的POC。 我错过了任何configuration? 我有一个docker运行在一个特定的端口 当我运行docker ps a时,我得到以下结果 27b54b635a42|ubuntu|"/bin/bash"|56 minutes ago|Up 56 minutes|0.0.0.0:3000->3000/tcp| ubuntu 我有以下代码 exports.create = function(req, res) { docker.createContainer({ Image: 'ubuntu', Cmd: ['/bin/bash'], host: '127.0.0.1', port: '3000', NetworkMode: 'host', Tty: true, Binds: ['/tmp:/tmp'] }, function(err, container) { if (err){ console.log("error", err); } else { console.log("container created"); var containerId = "27b54b635a42"; container.attach({ stdio:true, stream: true, stdout: […]

客户端无法通过nginx反向代理连接(https)到WebSocket服务器

我们的用例是一个托pipe在Docker容器中的web应用程序。 这个容器有一个Web服务器和一个WebSocket服务器,这两个服务器都使用托pipe在另一个Docker容器中的nginx反向代理从客户端传递请求。 我们使用的是一个nginx反向代理,因为并不是所有的webapp实例都需要HTTPS,但是,如果需要HTTPS,我们需要一个服务器来接受SSL连接,而不需要修改webapp Docker容器中的代码。 websocket连接打开如下: url={`wss://${this.props.root}websocket`} 其中${this.props.root}等同于example.com/ ,它根据托pipe服务器的域来进行更改。 反向代理通过将所有对服务器的请求传递给webapp的docker容器来处理所有请求 location / { proxy_pass http://___APPLICATION_IP___:___APPLICATION_PORT___; proxy_http_version 1.1; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_redirect off; proxy_set_header Connection "upgrade"; proxy_read_timeout 60s; } 然而,虽然经常性的请求(即通过普通的HTTP / GET传递的css和html数据)工作正常(我可以看到网站的用户界面),但是需要websocket的function却不起作用。 当我使用浏览器控制台时,它说: Firefox can't establish a connection to the server at wss://{test-domain-omitted-here}/websocket. 任何想法,我们可能会错过什么?

Docker端口映射。 在容器中运行达夫妮

我有点困惑。 我是这样在当地启动达芙妮: daphne common.asgi:channel_layer –port 8338 ,一切都“OK”。 当我使用curl -v 127.0.0.1:8338得到以下输出 * Rebuilt URL to: 127.0.0.1:8338/ * Trying 127.0.0.1… * TCP_NODELAY set * Connected to 127.0.0.1 (127.0.0.1) port 8338 (#0) > GET / HTTP/1.1 > Host: 127.0.0.1:8338 > User-Agent: curl/7.51.0 > Accept: */* 但是当我尝试启动docker容器与端口分配,它不认为已经使用8338端口: docker run \ -tid \ -p 8338:8338 \ -v $(PWD):/app \ –network […]

Docker中的Web Socket握手错误

我使用Python 3.5 , Flask和Meinheld Web套接字中间件来提供套接字。 这里是服务器端代码示例: @app.route('/chat') def chat(): ws = request.environ.get('wsgi.websocket') while True: m = ws.wait() if m is None: break ws.send(m) return "" 客户端代码示例: var s = new WebSocket("ws://localhost:4567/chat"); 然而,一切工作正常,而我在本地模式下运行,但是当我将此添加到docker容器中,我总是得到像这样的错误: WebSocket连接到'ws:// localhost:4567 / chat'失败:WebSocket握手期间出错:意外的响应代码:500 docker容器在远程服务器或本地环境中的运行位置并不重要,错误总是相同的。 所有必要的端口都被暴露。

Traefik Docker websocketconfiguration

我目前正在尝试使用自定义websocket服务的Traefik。 我需要在Docker云中部署它。 这是我的堆栈文件的摘录: traefik: image: traefik command: –web –docker –docker.domain=docker.localhost –logLevel=DEBUG ports: – '80:80' – '8080:8080' – '443:443' volumes: – /var/run/docker.sock:/var/run/docker.sock – /dev/null:/traefik.toml presenceservice: image: 'imagename' labels: – 'traefik.api.backend=presenceapi' – 'traefik.api.port=3000' – 'traefik.api.frontend.rule=PathPrefixStrip:/presenceapi,/alksjdfllkajsflkajsdlkfjaslkdfjaslkdjflkasjdflkasjdflkasdjf67' – 'traefik.websocket.backend=presencesocket' – 'traefik.websocket.protocol=ws' – 'traefik.websocket.port=3001' – 'traefik.websocket.frontend.rule=PathPrefixStrip:/presencesocket,/alksjdfllkajsflkajsdlkfjaslkdfjaslkdjflkasjdflkasjdflkasdjf68' – 'traefik.websocket.frontend.entryPoints=ws,wss' 但是试图用C#(SocketIoClientDotNet)连接到websocket只会导致连接错误。 在部署具有端口的存在服务之前,它工作。 任何build议在docker上撰写文件? 看着Traefik Git的问题,我只想出了这个configuration,但它不起作用。

无法构buildwebsocket

在浏览器上运行应用程序时,我在控制台中看到了这个错误。 我已经docker化我的应用程序,并使用https的nginx代理。 我知道这是要求我打开端口53703,但我没有得到在哪里打开aws或docker运行命令中的端口? 我也通过aws使用它。 Mixed Content: The page at 'https://xuz.xyz.com/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://xuz.xyz.com:53703/'. This request has been blocked; this endpoint must be available over WSS Mixed Content: The page at 'https://xuz.xyz.com/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint […]

Docker NGINX + Logspout不转发websocket

我试图使用NGINX从Logspout(升级到Websocket)访问httpstream。 这里是我docker-compose.yml文件的代码片段: version: '3' services: api: restart: always build: args: – DEBUG – DOMAINS – IPS – SECRET_KEY context: .. dockerfile: Dockerfile environment: – DEBUG – DOMAINS – IPS – SECRET_KEY – GUNICORN_LOG_LEVEL expose: – '8000' volumes: – ../db.sqlite3:/db.sqlite3 – /opt/scos:/opt/scos devices: – /dev/bus/usb:/dev/bus/usb:rw command: /docker/api_entrypoint.sh nginx: image: ${NGINX_IMAGE} restart: always ports: – '80:80' – […]

Docker Websocket附加在NodejS中

我想用Websockets连接到Docker API,但是,在任何容器,它只是给了我403禁止错误。 我不知道我在做什么错,没有足够的文件,但这是我的代码: var docker = require('docker.io')({ socketPath: false, host: "http://127.0.0.1", port: "4500" }); var WebSocket = require('ws'); var opts = { "AttachStdin": true, "AttachStdout": true, "AttachStderr": true, "Tty": true, "OpenStdin": true, "Cmd": [ "/bin/bash" ], "Image": "ubuntu" }; docker.containers.create(opts, function(err, result) { if (!err) { var containerId = result.Id; console.log("Container", containerId, "created"); docker.containers.start(containerId, function(err, […]

neo4j websocket连接失败

我有像下面截图一样的错误: 我正在寻找一点,但build议主要是关于这个解决scheme在这里: https : //neo4j.com/developer/kb/explanation-of-error-websocket-connection-failure/哪些不适合我。 我在Docker中运行这个,服务定义就是这样的: db: container_name: neo4j image: neo4j:3.2 ports: – "7474:7474" networking控制台错误只是说“无法build立连接到服务器ws:// localhost:7474”。 docker日志说,螺栓已被启用。 任何想法如何解决?

如何为Ruby on Rails应用程序dockerize Slanger

Slanger是用Ruby编写的Pusher协议的开源服务器实现。 根据Slanger项目README.md,Slanger并不是为了在Rails中运行而devise的。 它不是为了在Rails或Sinatra应用程序中运行而devise的 将它与一个Ruby on Rails应用程序一起dockerize会很好。 将采取什么步骤来实现呢?