这个问题关系与另一个有关:close does not seem to work with WebSocket。我不想复制/粘贴,因此您可以转到另一个问题以获取有关代码的详细信息。
我在docker上使用Websocket运行程序。它允许连接但是当我执行window.ws = new WebSocket('ws://127.0.0.1:8000/'); ws.close();
时,服务器似乎没有得到通知而不是客户端已关闭。当我运行没有docker的相同代码时,它可以工作。
这是我的Dockerfile:
FROM ruby:2.2.2
RUN apt-get update -qq && apt-get install -y build-essential
RUN apt-get install -y qt5-default libqt5webkit5-dev xvfb
RUN mkdir /app
ADD . /app
WORKDIR /app
ONBUILD RUN chown -R app /app
RUN gem install bundler
RUN cd /app
RUN bundle install
ONBUILD EXPOSE 3000 8000
这是我的docker-compose文件:
db:
image: postgres
ports:
- "15432:5432"
web:
image: gcorbel/optikcaminterface_web
command: ruby app.rb
volumes:
- .:/app
ports:
- "3000:3000"
environment:
RACK_ENV: development
links:
- db
test:
image: gcorbel/optikcaminterface_web
volumes:
- .:/app
command: rspec
environment:
RACK_ENV: test
links:
- db
ws:
image: gcorbel/optikcaminterface_web
command: ruby websocket.rb
volumes:
- .:/app
ports:
- "8000:8000"
我使用docker-compose up ws
运行我的服务器。
Docker和Websockets之间有问题吗?