public void SendBroadcast(MessageType messageType, String2 data) { foreach (IWorkSocketClient client in WorkSocketFactory.GetWorkSocketServer().GetSocketList()) { client.Send((int)messageType, data); } }
public void SocketServer() { IServer server = ServerFactory.CreateServer(80, 500); server.Acception += (client) => { try { HandShake header = client.Receive(); logger.Debug(header); String2 type = header[Define.PROTOCOL_CONNECTION]; if (type == null) { throw new Exception("header errer"); } type = type.ToUpper(); if (type.Equals(Define.KEEP_ALIVE)) { //This source is necessary that is modified. IWorkWebClient webclient = WorkWebFactory.GetWorkWebServer().CreateWebClient(client); webclient.Initialize(header); WebController.NewInstance(webclient); } else if (type.Equals(Define.UPGRADE)) { IWorkSocketClient socketclient = WorkSocketFactory.GetWorkSocketServer().CreateSocketClient(client); socketclient.Initialize(header["Sec-WebSocket-Key"]); SocketController control = SocketController.NewInstance(socketclient); socketclient.SetReceiveEvent(control.SetReceive()); } else { logger.Error(type); throw new Exception("header errer"); } } catch (Exception e) { logger.Error(e); client.Close(); } }; server.ServerStart(); }
private void SendWorkList(IWorkSocketClient client, WorkType type) { WebSocketMessageBuilder builder = WebSocketMessageBuilder.GetMessage(MessageType.WORKLIST); DirectoryInfo info = new DirectoryInfo(Program.WORK_PATH); FileInfo[] files = info.GetFiles(); builder.SetFileList(from f in info.GetFiles() where !String.Equals(f.Name, "default") select f.Name); String2 message = builder.Build(); if (type == WorkType.WorkListNotice) { foreach (IWorkSocketClient c in WorkSocketFactory.GetWorkSocketServer().GetSocketList()) { c.Send((int)Opcode.BINARY, message); } } else if (type == WorkType.WorkSearch) { client.Send((int)Opcode.BINARY, message); } }