안녕하세요 매번 어플만하다가 이번에 웹을 하게 됐는데 많은 어려움이 있어 고수분들의 도움을 받고자 합니다.

일단 개발은 서버 app이 있구요 이걸 웹으로 socket 통신을 할려고 합니다.

혹시나 해서 C# activeX을 만들어 보면 될까하여 개발 후에 웹에 적용하였더니 웹 client에서 app Server로 connect할때 보안 정책에 위반 된다하여 다방면을 찾다가 포기 후  웹에서 직접 통신 연결으로 바꿨습니다.

하단에 SocketMng는 소켓 연결해주는 클래스이구요 웹의 특성상 초기화 되기때문에 싱글턴으로 해서 연결 상태를 유지하고요 대리자와 이벤트를 써서 등록시키고 (OnSocketLogEvent) 데이터가 receive가 됐을때 이벤트가 호출되는데 이부분에서 웹페이지로 간단하게 데이터를 전송하려 하는데 페이지가 변화가 없더군요 디버깅시 데이터는 분명 들어오고 이벤트도 타는데..

보통 웹 페이지 호출 -> cs 응답 -> 웹 페이지 이건데 제가 하는건

cs 호출 - > 웹페이지 응답 보통적인 버튼 이벤트 같은 것이 아니고 cs에서 먼저 이벤트가 발생해서 적용이 안된듯한데 혹여나 이유를 아시는 분이 계시다면 한마디라도 고맙게 듣겠습니다.

목적이 소켓통신에 의한 웹페이지의 실시간 변동 구현입니다.

즐거운 주말 되세요~


cs 소스

private SocketMng m_socketMng;

private void SocketStart()
        {
            m_socketMng = Singleton.GetInstance();
            m_socketMng.OnSocketLogEvent += new SocketMng.SocketLog(socketMng_OnSocketLogEvent);
            m_socketMng.ConnectServer("192.168.123.116");
        }
public void socketMng_OnSocketLogEvent(string strLog, bool isConnect)
{
  //label1.text = strLog; //적용안됨
 //updatePanel.Update(); //오류 - render이전에 실행하여 발생
}

aspx 소스
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods = "true">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
        <ContentTemplate>        
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </ContentTemplate>
        </asp:UpdatePanel>