【问题标题】:.NET Server Sent Events with Reactive Extensions [closed].NET 服务器使用响应式扩展发送事件 [关闭]
【发布时间】:2016-08-05 14:12:04
【问题描述】:

我正在尝试使用 HTML5/JS 和服务器端 C# 中的客户端 IHM 实现 SSE (Server Sent Events) 模型。我正在使用一个COTS,它在.NET 中实现了一个带有响应式扩展的事件驱动的http 服务器。

客户端

var evtSource = new EventSource("http://127.0.0.1:4444");
source.onmessage = function(event) 
{
document.getElementById("result").innerHTML += event.data + "<br>";
};

1.浏览器提示“跨域请求”被拒绝。我在同一个域,正常吗?

2.是否可以调整这个http服务器来做SSE?如果这不可能,您知道一些实现 SSE 服务器端的 .NET 库(无 copyleft)吗?

感谢您的考虑。

【问题讨论】:

  • 哎呀,这个复制/粘贴的文本中缺少一部分!我不使用 ASP.NET/PHP 或其他服务器端。我目前在 C# 中使用 HttpListener(Http 套接字)
  • 您找到解决方案了吗?如果 SSE 在 HttpListener 中是可能的

标签: c# .net server-sent-events


【解决方案1】:
  1. 可以通过在标题中添加“Origin:*”来修复跨域问题。这可以根据您的架构在不同的地方完成。使用 MVC,它可以在 global.asax 中设置。使用 owin auth 时,您可以使用以下行在配置身份验证的位置设置它: config.EnableCors();我敢肯定,在谷歌上搜索“跨域”时会发现很多东西。
  2. 我不熟悉 SSE。但如果它不适合您,您可以查看 SignalR。(http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-net-client) 我在构建具有聊天功能的网站时发现它很容易实现。

【讨论】:

  • 当然,我没有使用 ASP.NET 或其他东西,但他认为我处于跨域模式是否正常?这是一个本地主机请求。感谢您的回答 !我在第一部分添加了评论,但对于您的第二部分。我将此添加到我的标题部分,它现在可以使用。
  • 我认为它认为 127.0.0.1 与 127.0.0.1:4444 是不同的域。跨域是指调用IP+端口与接收IP+端口不同时
猜你喜欢
  • 1970-01-01
  • 2015-08-08
  • 2013-03-24
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多