ApiController
后端API
public System.Net.Http.HttpResponseMessage GetUnknownNotices()
{
var user = FormsAuth.GetUserData();
var ns = new pl_NoticesService();
var nl = ns.GetNoticeList(user.UserID, false);
return createHttpRequestMessage(Newtonsoft.Json.JsonConvert.SerializeObject(nl));
}
System.Net.Http.HttpResponseMessage createHttpRequestMessage(string data)
{
var sb = new System.Text.StringBuilder();
sb.AppendFormat("retry:{0}\n",10000); //推送间隔
sb.AppendFormat("event:{0}\n", "message"); //绑定onmessage
sb.AppendFormat("id:{0}\n", DateTime.Now.Ticks.ToString());
sb.AppendFormat("data:{0}\n", data);
var response = new System.Net.Http.HttpResponseMessage
{
Content = new System.Net.Http.StringContent(sb.ToString(), System.Text.Encoding.GetEncoding("UTF-8"),"text/event-stream")
};
response.StatusCode = System.Net.HttpStatusCode.OK;
return response;
}
前端JS
if (typeof (EventSource) != "undefined") {
var es = new EventSource("/api/xxxx/GetUnknownNotices");
es.onmessage = function (event) {
var data = JSON.parse(event.data);
$('#msgCount').text(data.length+"\n\n")
};
es.onopen = function (event) {
console.log("open:" + es.sta);
};
es.onerror = function (event) {
console.log("error:" + es.readyState);
};
}
else {
console.log("该浏览器不支持");
}
参考:
https://www.runoob.com/html/html5-serversentevents.html
作者:EminemJK(山治先生)
出处:https://www.cnblogs.com/EminemJK/
您的支持是对博主最大的鼓励👍,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5gTJDJUJGVUJ1EUJzkTJ1UUJClTJwkTJ3UUJ4gTJDJUJGVUJGFUJxgTJ2UUJxEUJGJUJ0UUJ4EUJzIUJ2UUJzIUJ1gTJ1UUJ4EUJzgTJ5UUJ1kTJBJUJ1UUJxUjMxATM0AzNwAjMf92LcBTM3UDN58CXLpUbl5WatV0Lc12bj91cn9Gbi52YvwVbvNmLzd2bsJmbj5ycldWYtl2Lc9CX6MHc0RHaiojIsJye.png)