我正在将Jelastic用于我的开发环境(尚未投入生产).我的应用程序与Unicorn一起运行,但我发现带有ActionCable的websockets并将其集成到我的应用程序中.
一切都在本地工作正常,但在部署到我的Jelastic环境(使用默认的NGINX/Unicorn配置)时,我在我的javascript控制台中收到此消息,我在访问日志中看不到任何内容
WebSocket connection to 'ws://dev.myapp.com:8080/' failed: WebSocket is closed before the connection is established.
Run Code Online (Sandbox Code Playgroud)
我曾经在我的本地环境中通过在配置文件中添加所需的ActionCable.server.config.allowed_request_origins来解决它.所以我仔细检查了我的开发配置,这没关系.
这就是为什么我想知道NGINX配置是否有特定的东西,除了在ActionCable git页面上解释的内容
bundle exec puma -p 28080 cable/config.ru
Run Code Online (Sandbox Code Playgroud)
对于我的应用程序,我在这里输入链接描述,但没有提及任何有关NGINX配置的内容
我知道带有ActionCable的websocket很新,但我希望有人能够在这方面给我一个带头
非常感谢
我在Android(4.4)的最后一次更新时面临一个奇怪的问题:我的CSS渲染在用户的屏幕上可见,这意味着我的webview内容非常薄,然后才能适应宽度:100%的CSS.
我使用android.webkit.WebView来显示这样的html字符串:
webView.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);
Run Code Online (Sandbox Code Playgroud)
此webview具有以下大小集:
构建CSS以适应webview宽度,然后高度将自行调整.css中没有设置绝对宽度或高度.
当我显示我的webview(已经完全加载,因为我使用onPageFinished回调以了解加载已完成)时,CSS开始呈现.这让我感到惊讶,因为我认为在加载webview时应该渲染它.问题是,对于用户,显示非常小的白线,然后该行调整自身以匹配webview设置.
如果我在CSS中修复宽度,我没有任何渲染问题.但我不能这样做,因为我想匹配所有屏幕尺寸.
Android 4.4之前没有问题,因为在CSS完全呈现之前屏幕上没有显示任何内容.
顺便说一下,我正在使用webview中的setPictureListener()方法.我知道这种方法已被弃用(暂时已过时),但这是了解webview何时真正完成在屏幕上"绘制"的唯一方法.如果我在Android 4.4中使用此方法,则会多次调用它,并且此错误在DDMS中出现:
W/UnimplementedWebViewApi(23891): Unimplemented WebView method run called from: android.os.Handler.handleCallback(Handler.java:733)
Run Code Online (Sandbox Code Playgroud)
我不知道是否存在直接关系,我不认为即使不使用此方法,我的CSS也无法正确呈现.
我尝试了很多东西:
但没有任何效果.看起来只有在webview对用户可见时才会呈现CSS.
我无法显示源代码,因为它是出于专业目的,因此我只想对可以搜索的位置有不同的观点(或者如果有人已经在DDMS中看到这个奇怪的错误)
有人知道如何在显示此webview之前等待CSS在webview中呈现吗?
非常感谢
我有一个在Nginx + Unicorn环境中运行的rails应用程序
我看到他们的配置文件中都有"worker_processes",我想知道什么是最佳配置
如果我有4个核心,我应该为它们放4个核心吗?或1为nginx和4为独角兽?
(顺便说一下,我也在使用sidekiq,那么sidekiq并发呢?)