gpt4 book ai didi

javascript - 更改 EventSouce 事件名称在 asp.net 中不起作用

转载 作者:行者123 更新时间:2023-11-28 07:17:55 25 4
gpt4 key购买 nike

我有一个带有 knockout.jsasp.net mvc 应用程序

我正在使用 HTML5 EventSource 来推送消息

c#

 private static void UpdateOnlineUsers()
{
var ou = Clients.Select(c => new { UserName = c.User.Name, Time = c.DateTime.ToString("G") }).ToList();
Clients.ForEach(c =>
{
c.Stream.WriteLine("data:" + new JavaScriptSerializer().Serialize(ou) + "\n\n");
});
}

JavaScript 是

eventSource.addEventListener('message', function (e) {
if (e.data.length) {
var json = JSON.parse(e.data);
if (json.Text) {
messages.push(json);
}
else onlineUsers(json);
}
}, false);

工作正常。

但我想为事件添加一个特定名称,因此我在 C# 方法中添加了新行,例如

Clients.ForEach(c =>
{
c.Stream.WriteLine("event: messenger \n"); // added new
c.Stream.WriteLine("data:" + new JavaScriptSerializer().Serialize(ou) + "\n\n");
});

并将脚本更改为

eventSource.addEventListener('messenger',...`

添加事件名称后它停止工作

请帮忙!

谢谢。

最佳答案

如果删除事件名称和“\n”之间的空格,看起来它会起作用,如下所示:

 Clients.ForEach(c =>
{
c.Stream.WriteLine("event: messenger\n"); // added new w/o space
c.Stream.WriteLine("data:" + new JavaScriptSerializer().Serialize(ou) + "\n\n");
});

关于javascript - 更改 EventSouce 事件名称在 asp.net 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com