我正在尝试在我的应用程序中利用Server-Sent Events.我正在使用Sinatra和sinatra-sse
宝石.这个宝石包裹着Sinatra的stream :keep_alive
召唤.
在Thin上运行我的应用程序时,我绝对没有问题,我的事件流按预期工作.然而,当我切换我的应用程序与Puma一起运行时,一切正常,除了我sse_stream
绝对没有!它只返回一个空白页面.
我的流设置如此
get "/logstream/:server" do
if rbcserver = MyApp.servers[params[:server]]
sse_stream do |stream|
rbcserver.add_web_logger(stream)
stream.callback { rbcserver.remove_web_logger(stream) }
end
else
error 404
end
end
Run Code Online (Sandbox Code Playgroud)
我这样开始瘦:
@@puma_instance = Puma::Server.new MyApp::WebUI
@@puma_instance.add_tcp_listener ip, port
@@puma_instance.run
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?任何帮助,将不胜感激.
编辑:更多信息这是cURL在Puma上运行时提供的
$ curl -L -b cookies.txt -c cookies.txt -i http://localhost:9001/logstream/myserver
HTTP/1.1 200 OK
Content-Type: text/event-stream;charset=utf-8
X-Content-Type-Options: nosniff
Transfer-Encoding: chunked
$
Run Code Online (Sandbox Code Playgroud)
而这就是Thin上发生的事情
$ curl -L -b cookies.txt -c cookies.txt -i http://localhost:9001/logstream/myserver
HTTP/1.1 200 OK
Content-Type: text/event-stream;charset=utf-8
X-Content-Type-Options: nosniff
Connection: …
Run Code Online (Sandbox Code Playgroud) 所以我有一个奇怪的问题.我有一个运行linux的CI服务器的自定义rails环境设置.环境正确加载,测试在CI服务器上运行,但只有当我用bundle exec rspec
而不是bundle exec rake spec
或运行它们时bundle exec rake
.
当测试没有运行时,它们仍然返回退出代码0,并且CI服务器假定构建成功,即使理论上构建可能被破坏.
在我的机器上运行相同的行为,运行OS X.
这是一个包含所有不同测试用例的控制台会话,以更好地说明正在发生的事情.
~/myapp $ rake
/Users/io/.rvm/rubies/ruby-2.2.0/bin/ruby -I/Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.3.2/lib:/Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-support-3.3.0/lib /Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.3.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
...............................................
Finished in 4.34 seconds (files took 3.1 seconds to load)
47 examples, 0 failures
# -----
~/myapp $ rake spec
/Users/io/.rvm/rubies/ruby-2.2.0/bin/ruby -I/Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.3.2/lib:/Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-support-3.3.0/lib /Users/io/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.3.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
...............................................
Finished in 3.8 seconds (files took 3.36 seconds to load)
47 examples, 0 failures
# -----
~/myapp $ rspec
...............................................
Finished in 3.87 seconds (files took …
Run Code Online (Sandbox Code Playgroud) 所以,我正在写一个光线跟踪器,我有一个基本类来表示视口.它看起来像这样:
camera.hpp:
#define real double
class Camera
{
// self explanatory
Vector3 origin, destination, up;
// camera's coordinate system
// N = normal to projection plane ("z-axis")
// U, V = x- and y-axes of projection plane
Vector3 N, U, V;
// Directional increment vectors for screen-space X and Y
Vector3 xInc, yInc;
// vFOV derived from hFOV
real horizontalFOV, verticalFOV;
// width and height of projection buffer in pixels
real width, height;
public:
// Constructs a camera
// pO …
Run Code Online (Sandbox Code Playgroud)