草庐IT

EventSource

全部标签

ruby-on-rails - 测试包含 ActionController::Live 的 Controller

我有一个包含RailsActionController::Live模块的Controller。我正在显示一个日志文件的内容,它正在使用FileTailgem读取,并使用ActionController::Live中的SSE像这样:classLogsControllereRails.logger.info"ErrorMessage::#{e.message}"ensuresse.closeendend我想使用Rspec测试live操作。这是我目前拥有的:before{get:live}it{expect(response.headers['Content-Type']).toeq("te

ruby - 通过 Nginx 的 EventSource/Server-Sent 事件

在服务器端使用带有streamblock的Sinatra。get'/stream',:provides=>'text/event-stream'dostream:keep_opendo|out|connections在客户端:vares=newEventSource('/stream');es.onmessage=function(e){$('#chat').append(e.data+"\n")};当我通过http://localhost:9292/直接使用应用程序时,一切正常。连接是持久的,所有消息都传递给所有客户端。但是,当它通过Nginx时,http://chat.dev,连接

javascript - 运行 EventSources 对服务器的影响

我目前正在建立一个聊天只是为了好玩。我以前从未这样做过,一般来说,我这样做是为了尝试EventSourceAPI(Server-SentEvents)在JavaScript中。我大约3天前才听说它,我认为它很有趣,而且比设置WebSocket容易得多。我知道长轮询会占用大量资源。但是,由于我从未听说过EventSource,它对服务器有何影响?它是否使用相同数量的资源?我注意到,在GoogleChrome开发者工具的Networks选项卡中,EventSource确实创建了一个具有较大内容大小的请求(随着时间的推移)。有1个内容大小较大的请求是否更好?我的聊天当前正在运行两个Event

javascript - 事件源 XHR header

我正在尝试使用EventSource与服务器建立流式连接。但我需要在底层XHR请求上设置sessionkeyheader。如果可能的话,如何从EventSource对象访问XHR?谢谢!请注意,我不确定EventStream是否支持CORS,这首先会阻止它为我工作,但我在某些地方读到它应该被支持...... 最佳答案 首先,好消息是几乎所有支持SSE的浏览器都支持并使用CORS。(一年前就有问题,所以只有在与坚持运行现代自动更新浏览器的过时版本的用户打交道时才会遇到问题,这是一种不寻常的组合。)现在有个坏消息:您无法在EventSo

javascript - 是什么导致 eventSource 停留在 readyState 0?

我在azure上有一个go应用程序,它根据在url中作为事件源“.co/stream/{id}”发送的id生成SSE连接。其中一个ID的使用频率高于其他ID,并且已停止连接,但任何其他ID都可以正常连接。该应用程序位于ubuntu虚拟机中。客户端与vue应用程序连接。我不确定azure是否阻止了url或者连接是否有限制?我尝试过的事情:端点和端口已在Azure的网络配置中配置。重新启动应用程序和服务器工作几分钟(5-10分钟),但随后在客户端上收到Err_Connection_Refused。虚拟机上的CPU和内存使用率非常低客户varurl="example.co:3000/";va

c# - WeakEventManager RemoveHandler 在异步调用时并不总是有效

我正在使用WeakEventManager类以订阅C#中的事件。事件订阅工作正常,但是调用WeakEventManager.RemoveHandler来自Task并不总是删除处理程序-大多数(但不是全部)事件触发时处理程序仍会执行。下面的例子说明了这一点。publicclassEventSource{publiceventEventHandlerFired=delegate{};publicvoidFireEvent(){Fired(this,EventArgs.Empty);}}classProgram{privatestaticbooladded,removed,handled;s

c# - 如何使用 Windows 性能分析器查看 EventSource 创建的 ETW 事件?

我想使用EventSource触发ETW事件并使用WindowsPerformanceAnalyzer查看它们。我有一个基本的EventSource:[EventSource(Name="BasicEventSource")]publicclassETWLogger:EventSource{#ifDEBUGprivateconstboolThrowOnError=true;#elseprivateconstboolThrowOnError=false;#endifprivateETWLogger(boolthrowOnError):base(throwOnError){}private

javascript - EventSource 的响应有一个 MIME 类型 ("text/plain") 而不是 "text/event-stream"

EventSource的响应具有不是“text/event-stream”的MIME类型(“text/plain”)。中止连接。为什么从javascript向servlet发送请求时会出现此错误? 最佳答案 发送前需要设置消息头:response.writeHead(200,{'Content-Type':'text/event-stream','Cache-Control':'no-cache','Connection':'keep-alive'});您可以关注这篇文章了解更多信息:https://www.html5rocks.c

javascript - 服务器发送的事件 : How do you automatically reconnect in a cross-browser way?

我实现了一些代码来查询数据库的任何更改并发送事件。这是我的PHP脚本的代码header("Content-Type:text/event-stream");header('Cache-Control:no-cache');//****Somecodeheretoquerythedatabaseecho"event:message\n";echo"data:change_from_database\n";echo"\n\n";ob_flush();flush();我依靠浏览器在每次连接关闭时自动重新连接,所以我没有在我的服务器代码上实现任何循环。另外,我从thisthread中了解到实现

PHP 事件源继续执行

我开始使用JavaScriptEventSource对象在HTML5中使用推送。我对PHP中的工作解决方案非常满意:$time=0;while(true){if(connection_status()!=CONNECTION_NORMAL){mysql_close()break;}$result=mysql_query("SELECT`id`FROM`table`WHEREUNIX_TIMESTAMP(`lastUpdate`)>'".$time."'");while($row=mysql_fetch_array($result)){echo"data:".$row["id"].PHP