static bool Init() { bool result = false; LPListener listener = null; ServerMessageHandler serverMessageHandler = null; serverMessageHandler = new ServerMessageHandler(); if (LOG_ERROR(serverMessageHandler != null)) { goto Exit0; } result = LP.Init(EPlatform.Pc, true, serverMessageHandler); if (ERROR(result)) { goto Exit0; } listener = LP.NetModule.CreateListener(IPAddress.Parse("127.0.0.1"), 7777, serverMessageHandler); if (LOG_ERROR(listener != null)) { goto Exit0; } result = listener.Start(); if (LOG_ERROR(result)) { goto Exit0; } return(true); Exit0: return(false); }
//TODO message distribution list (VK) //private Queue<string> otpAndNameQueue = new Queue<string>(); static void Main(string[] args) { //Console.WriteLine("Hello World!"); Program P = new Program(); //TCP сервер и TCP клиент в отдельных потоках //TCPClient tcp_client = new TCPClient(port_tcp_chat_uplink, delay); // if false = user Community BOT //TCPOtpListenerServer tcp_otp_server = new TCPOtpListenerServer(port_tcp_otp); //Send OTP through TCP TCPOtpSender tCPOtpSender = new TCPOtpSender(P.port_tcp_otp_uplink, delay); Thread optSenderThread = new Thread(tCPOtpSender.TCPSenderRun); optSenderThread.Start(); //Read OTP (UNUSED) //TCPOtpListenerServer tcp_otp = new TCPOtpListenerServer(); //Thread otpServerThread = new Thread(tcp_otp.TCPOtpListenerServerStart); //otpServerThread.Start(port_tcp_otp_uplink); TCPClient tcp_c = new TCPClient(port_tcp_chat_uplink, delay); Thread tcpClientThread = new Thread(tcp_c.TCPClientRun); tcpClientThread.Start(); //new Thread(() => //{ // Thread.CurrentThread.IsBackground = true; // TCPClient.Connect("127.0.0.1", port_tcp_chat_uplink); //}).Start(); //TCPServer tcp_s = new TCPServer(port_tcp_chat_downlink, delay); //Thread tcpServerThread = new Thread(tcp_s.TCPServerStart); //tcpServerThread.Start(); //AsynchronousSocketListener.StartListening(); //Сервер для чтения чата/консоли и отправки в ВК каждому привязанному юзеру Thread t = new Thread(delegate() { // replace the IP with your system IP Address... Server myserver = new Server("127.0.0.1", port_tcp_chat_downlink, delay); }); t.Start(); Console.WriteLine("Server Started...!"); //Old 1 thread LPListener LPL = new LPListener(); //LongPollListener в отдельном потоке Thread LPthread = new Thread(LPL.LongPollListener); LPthread.Start(); ////Each message or action = New Thread (multitask) ///Получается что при новом событии запускается новый поток с бесконечным циклом, в котором обрабатываются ВСЕ события, а не только инициатора (юзера) ///Нужно как-то передать в обработчик юзера ? /// //LPListener manager = new LPListener(); //manager.OnNewMessage += (message, sender) => //{ // //Обрабатываем входящее сообщение //}; //manager.StartMessagesHandling(); //manager.OnGroupJoin += (message, sender) => //{ // //Обработка вступления в паблик //}; //manager.StartGroupJoinHandling(); //manager.OnGroupLeave += (message, sender) => //{ // //Обработка выхода из паблика //}; //manager.StartGroupLeaveHandling(); //manager.OnMessageAllow += (message, sender) => //{ // //Подписка на сообщения сообщества //}; //manager.StartMessageAllowHandling(); }