static void SessionClosed(OpcUserSession session, CloseReason reason) { lock (sessionRoot) { if (ouSrv.SessionCollection != null && ouSrv.SessionCollection.Count > 0) { if (ouSrv.SessionCollection.Keys.Contains(session.Type) && ouSrv.SessionCollection[session.Type].Contains(session)) { ouSrv.SessionCollection[session.Type].Remove(session); } } } session.Logger.Info(reason); }
public static void OuSrv_NewMessageReceived(OpcUserSession session, string message) { try { string[] type_msg = message.Split(':'); if (type_msg[0] == "type") { session.Type = type_msg[1]; } if (!ouSrv.SessionCollection.Keys.Contains(session.Type)) { List<OpcUserSession> sessionList = new List<OpcUserSession>(); sessionList.Add(session); ouSrv.SessionCollection.Add(session.Type, sessionList); } else { ouSrv.SessionCollection[session.Type].Add(session); } } catch { } }
static void SessionConnected(OpcUserSession session) { string type = session.Path.Substring(1); session.Type = type; if (!ouSrv.SessionCollection.Keys.Contains(session.Type)) { List<OpcUserSession> sessionList = new List<OpcUserSession>(); lock (sessionRoot) { sessionList.Add(session); ouSrv.SessionCollection.Add(session.Type, sessionList); } } else { lock (sessionRoot) { ouSrv.SessionCollection[session.Type].Add(session); } } }