server-sent-events 相关问题

服务器发送事件(SSE)是HTML5规范的一部分。 SSE允许客户端和服务器之间的单向持久连接,使得客户端仅发出单个请求,并且服务器持续不断地将数据推送到客户端,直到连接关闭。

Springboot SseEmitter 超时

尝试执行以下springboot SSE代码: @控制器 公共类 DataActivityController { @CrossOrigin @RequestMapping(值=“/ sse / mvc /发射器”) 公众回应En...

回答 1 投票 0

如何使用nestjs反向代理sse请求

我有一个外部Web应用程序,它有后端(nodeJs)和客户端(Vue)。 现在我们想在反向代理后面使用这个 Web 应用程序(不是 Nginx,因为我们实现了一个内部逻辑......

回答 1 投票 0

如何使用openai api在React Native中实现文本流?

我正在开发一个React Native聊天应用程序,我想使用openai api来实现自动回复。 openai 的 api 有可用的流,但它使用 SSE,这似乎在...

回答 1 投票 0

具有开放连接的服务器端 C++ http 侦听器。当客户端终止时,线程会发生什么?

我正在尝试使用 Cpp Rest SDK 实现带有事件的服务器开放 http 连接。我刚刚开始调查 CPP Rest。 我用这个例子 与实施: MyServer::MyServer(实用程序::str...

回答 1 投票 0

Spring SseEmitter 抛出 java.lang.IllegalArgumentException: 发送 DTO 对象时没有适合类错误的转换器

在我们的 Spring-boot 应用程序上,我们有以下简单的 SseStatusDto DTO: @Builder @AllArgsConstructor @NoArgs构造函数 公共类 SseStatusDto { 私有字符串当前阶段; 私人...

回答 1 投票 0

刷新页面不会删除Solidjs应用程序和Golang后端之间的SSE连接

我有一个 SSE api,当通过另一个 POST API 端点更新数据时,它会更新前端。它似乎第一次工作,但是当我重新加载页面并运行虚拟数据时......

回答 1 投票 0

Godspeed Framework 中的数据源和事件源是什么?

Godspeed Framework 中的数据源和事件源是什么? 我想了解 Godspeed 中数据源和事件源的实际情况

回答 1 投票 0

服务器发送的事件:更改时间间隔

我正在查看服务器发送的事件,因为客户端位于共享托管上,并且我无法使用 websockets。 我已经测试了 W3School 的示例,它工作得很好。我的代码如下所示: 工业...

回答 2 投票 0

服务器使用 IAP 在 Cloud Run 上发送事件

我已将 NodeJS API 部署到 IAP 后面的 Cloud Run 进行身份验证。我正在尝试将 SSE 发送到客户端,但它们都在缓冲,直到达到最大缓冲区长度或事件停止...

回答 1 投票 0

有没有办法简化这段代码,避免每次手动调用`onDestroy`?

我们在 SvelteKit 应用程序的多个位置使用 EventSource,如下所示: 从 'svelte' 导入 { onDestroy } ; 从'$lib/events'导入{customEventSource}; 常量回调...</desc> <question vote="0"> <p>我们在 SvelteKit 应用程序的多个位置使用 EventSource,如下所示:</p> <pre><code>&lt;script&gt; import { onDestroy } from &#39;svelte&#39;; import { customEventSource } from &#39;$lib/events&#39;; const callback = (event: MessageEvent) =&gt; { console.log(&#39;event:&#39;, event); }; customEventSource.addEventListener(&#39;message&#39;, callback); onDestroy(() =&gt; { customEventSource.removeEventListener(&#39;message&#39;, callback); }); &lt;/script&gt; </code></pre> <p>正如你所见,每次都有很多东西要写。</p> <p>难道没有一种神奇的方法 - 正如 Svelte 教给我们的那样 - 来简化吗?</p> <p>特别是这样我就不必每次都<strong>手动</strong>打电话<pre><code>onDestroy</code></pre>?</p> </question> <answer tick="false" vote="0"> <p>我想这样的事情会起作用:</p> <pre><code>// This is a helper file. import { onDestroy } from &#39;svelte&#39; import { customEventSource } from &#39;$lib/events&#39; export function listenForMessages(listener){ customEventSource.addEventListener(&#39;message&#39;, listener) onDestroy(() =&gt; customEventSource.removeEventListener(&#39;message&#39;, listener)) } </code></pre> <p>在您的组件中:</p> <pre><code>&lt;script&gt; import { listenForMessages } from &#39;./the-file.js&#39; listenForMessages((event) =&gt; { console.log(&#39;event:&#39;, event) }) &lt;/script&gt; </code></pre> </answer> </body></html>

回答 0 投票 0

WordPress `get_transient()` 返回过时的值

我正在构建一个 WordPress 插件,该插件在数据更改时使用服务器发送的事件来更新页面。 这是该代码的一个片段: 而(真){ // 将更新发送到客户端。 ...

回答 1 投票 0

前端未收到服务器发送的事件

我正在尝试通过应用程序 FronteEnd 上的 EventSource 订阅 BE 上的事件。问题似乎反映了事件侦听器,因为我正在到达 BE 端点并注册...

回答 1 投票 0

是否可以像chatgpt一样中断或停止openai聊天完成流而不浪费令牌?

我已经实现了 openai 聊天 api 来获取回复。我已经应用了chatStream,以便它可以像chatGPT一样显示。它在我的代码中运行良好。但是聊天 gpt 中有一个选项,当回复时

回答 1 投票 0

如何在 Vapor Swift 中传输数据?

我正在使用 Vapor Swift 构建开放式 AI 聊天流后端。它使用 MacPaw 的 OpenAI 包装器连接到 Open AI API。但我不确定如何使用 SSE 将结果流式传输给客户端而不是......

回答 1 投票 0

可以使用 deno fresh 框架执行服务器端事件

是否可以将服务器端事件用于新的 POST 处理程序?我有一个很长的服务器端进程,并且想同时向客户端返回一些事件更新?

回答 2 投票 0

Flutter Web 中如何接收服务器发送的事件(SSE)?

我尝试了几种不同的 SSE 插件来接收 Flutter Web 应用程序中服务器发送的事件,所有这些插件都可以连接,但我在 Flutter 中没有收到任何事件。但是,如果我在...中打开 DevTools

回答 1 投票 0

上证所Spring Cloud Stream供应商

我正在尝试使用以下代码创建一个SSE Spring Cloud Stream供应商: @豆 fun sseSupplier(sseSupplierPub:发布者>):供应商 我正在尝试使用以下代码创建 SSE Spring Cloud Stream 供应商: @Bean fun sseSupplier(sseSupplierPub: Publisher<Message<Any>>): Supplier<Flux<Message<Any>>> { return Supplier { Flux.from(sseSupplierPub) } } @Bean fun sseSupplierPub( sseSupplierProperties: sseSupplierProperties ): Publisher<Message<Any>> { return IntegrationFlow.from(channelsConfiguration.trigger()) .enrichHeaders { it.header(CONTENT_TYPE, "application/json") it.header(ACCEPT, "text/event-stream") } .handle(sseMessageHandlerSpec()) .log() .toReactivePublisher(true) } fun webClient(): WebClient { val client = HttpClient.create(provider) .keepAlive(true) val clientRegistryRepo = InMemoryReactiveClientRegistrationRepository( ClientRegistration .withRegistrationId("clientId") .tokenUri("https://openid-connect/token") .clientId("clientId") .clientSecret("clientSecret") .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .build()) val clientService = InMemoryReactiveOAuth2AuthorizedClientService(clientRegistryRepo) val authorizedClientManager = AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(clientRegistryRepo, clientService) val oauthFilter = ServerOAuth2AuthorizedClientExchangeFilterFunction(authorizedClientManager) oauthFilter.setDefaultClientRegistrationId("clientId") return WebClient.builder() .filter(oauthFilter) .clientConnector(ReactorClientHttpConnector(client)) .exchangeStrategies(strategies) .build() } fun sseMessageHandlerSpec(): WebFluxMessageHandlerSpec { return WebFlux.outboundGateway( "https://api/src", webClient()) .httpMethod(HttpMethod.POST) .replyPayloadToFlux(true) .expectedResponseType(typeReference<ServerSentEvent<String>>()) } @Bean fun commandLineRunner(ctx: ApplicationContext?): CommandLineRunner { return CommandLineRunner { _ -> val message = MessageBuilder.withPayload("{}").build() logger.info { "Trigger SSE supplier" } channelsConfiguration.trigger().send(message) } } 我能够获取授权令牌并成功连接到https://api/src,但除了此消息之外我无法获得任何响应 { "scanAvailable": true, "prefetch": -1 } 当我连接时。收到上述消息后,我将不会再收到任何消息。可能是什么问题? 我设法接收数据,但我需要订阅响应中的body(请参阅下面更新的代码)。我现在面临的问题是如何将DataBuffer映射到ServerSentEvent。 @Bean fun sseSupplier(sseSupplierPub: Publisher<Message<Any>>): Supplier<Flux<Message<Any>>> { return Supplier { Flux.from(sseSupplierPub) } } @Bean fun sseSupplierPub( sseSupplierProperties: sseSupplierProperties ): Publisher<Message<Any>> { return IntegrationFlow.from(channelsConfiguration.trigger()) .enrichHeaders { it.header(CONTENT_TYPE, "application/json") it.header(ACCEPT, "text/event-stream") } .handle(sseMessageHandlerSpec()) .channel(channelsConfiguration.sseMessage()) .log() .toReactivePublisher(true) } fun webClient(): WebClient { val client = HttpClient.create(provider) .keepAlive(true) val clientRegistryRepo = InMemoryReactiveClientRegistrationRepository( ClientRegistration .withRegistrationId("clientId") .tokenUri("https://openid-connect/token") .clientId("clientId") .clientSecret("clientSecret") .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .build()) val clientService = InMemoryReactiveOAuth2AuthorizedClientService(clientRegistryRepo) val authorizedClientManager = AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(clientRegistryRepo, clientService) val oauthFilter = ServerOAuth2AuthorizedClientExchangeFilterFunction(authorizedClientManager) oauthFilter.setDefaultClientRegistrationId("clientId") return WebClient.builder() .filter(oauthFilter) .clientConnector(ReactorClientHttpConnector(client)) .exchangeStrategies(strategies) .build() } fun sseMessageHandlerSpec(): WebFluxMessageHandlerSpec { return WebFlux.outboundGateway( "https://api/src", webClient()) .httpMethod(HttpMethod.POST) .bodyExtractor { inputMessage, _ -> inputMessage.body.subscribe { val bytes = ByteArray(it.readableByteCount()) it.read(bytes) DataBufferUtils.release(it) val output = String(bytes) val message = MessageBuilder.withPayload(output).build() logger.debug { "SSE message payload => ${message.payload}" } channelsConfiguration.sseMessage().send(message) } } } @Bean fun commandLineRunner(ctx: ApplicationContext?): CommandLineRunner { return CommandLineRunner { _ -> val message = MessageBuilder.withPayload("{}").build() logger.info { "Trigger SSE supplier" } channelsConfiguration.trigger().send(message) } }

回答 1 投票 0

HTTP响应中的more_body是什么?

使用 ASGI 框架 Starlette,它有一个流式响应,它利用 HTTP 响应中的一些 more_body 参数来表示块是否已完成流式传输(源代码)。有一个

回答 1 投票 0

了解使用 okhttp-sse 时的套接字超时

我正在使用 okhttp-sse 来使用 Java 中的服务器端事件。 OkHttpClient httpClient = new OkHttpClient(); 字符串 sseUrl = getSseUrl(); 请求 request = new Request.Builder() .url(sseUrl) ....

回答 1 投票 0

上下文值被记录 100 次

我目前正在开发一个利用服务器发送事件的项目。一旦检测到更改,我就会尝试更新组件。这是可行的,但是会发生一些奇怪的日志。当我尝试记录混乱时...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.