【发布时间】:2015-06-04 15:15:36
【问题描述】:
我有一个asp.net mvc 应用程序knockout.js
我正在使用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',...`
添加事件名称后它停止工作
请帮忙!
谢谢。
【问题讨论】:
标签: javascript c# asp.net-mvc knockout.js server-sent-events