Я хочу отправлять отправленное сервером событие клиенту каждый раз, когда запускается новое событие.
Но внутри моего обратного вызова я вызываю статический метод с именем commonEventBuffer.sendIncommingEvent () и передаю текст сообщения (который должен быть отправлен обратно клиенту, а также объект ответа), но в этом методе я получаю исключение при вызове _resp.write ().
В качестве сообщения об исключении я получаю «Ссылка на объект не установлена на экземпляр объекта.
Так что я не так делаю?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace HomeScadaWebApp
{
/// <summary>
/// Summary description for incommingEventHandler
/// </summary>
public class incommingEventHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
commonEventBuffer._storedResponse = context.Response;
getNotification.myHandler += CB;
}
private void CB(object sender, EventArgs e)
{
string s = commonAESStuff.getEventChanges();
commonEventBuffer.sendIncommingEvent(s,commonEventBuffer._storedResponse);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
//class commonEventBuffer.cs (is an additional file!!)
public class commonEventBuffer
{
public static HttpResponse _storedResponse;
public static void addEvent(String s)
{
commonAESStuff.addEventChange(s);
}
public static void sendIncommingEvent(string s,HttpResponse _resp)
{
if (_resp != null && s != null)
{
try
{
_resp.ContentType = "text/event-stream";
_resp.Write("data:" + s.ToString() + "\n\n");
_resp.Flush();
}
catch (Exception ex)
{
}
}
}
}