📄 defaultservermodel.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package chat.server;import chat.common.LoginMessage;import chat.common.LogoutMessage;import chat.common.Message;import chat.common.User;import java.io.IOException;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */public class DefaultServerModel implements ServerModel { private static DefaultServerModel model; private Map<User, ServWorker> userMap; public Map<User, ServWorker> getUserMap() { return userMap; } public void setUserMap(Map<User, ServWorker> userMap) { this.userMap = userMap; } private DefaultServerModel() { userMap = new HashMap<User, ServWorker>(); System.out.println(userMap.keySet().getClass().getName()); } public static DefaultServerModel getInstance() { if (model == null) { model = new DefaultServerModel(); } return model; } public void addUserToList(User user, ServWorker worker) { userMap.put(user, worker); } public void removeUserFromList(User user) { userMap.remove(user); } public void sendMessageToUser(User user, Message message) { try { userMap.get(user).getOos().writeObject(message); userMap.get(user).getOos().flush(); } catch (IOException ex) { Logger.getLogger(DefaultServerModel.class.getName()).log(Level.SEVERE, null, ex); } } public void sendMessageToUsers(Message message) { for (User user : userMap.keySet()) { sendMessageToUser(user, message); }// Iterator itor = userMap.keySet().iterator();// while(itor.hasNext()){// Object obj = itor.next();// User user = (User)obj;// sendMessageToUser(user, message);// } } public void doLogin(LoginMessage message) { //默认所有用户都可以登录 if (userMap.keySet().contains(message.getUser())) { message.setStatus(LoginMessage.LOGIN_FAILED); message.setMessage("用户名已存在!"); } else { message.setStatus(LoginMessage.LOGIN_OK); message.setMessage("登录成功"); } } public void doLogout(LogoutMessage message) { message.setStatus(LogoutMessage.LOGOUT_OK); message.setMessage("登出成功"); } public void sendMessageToUsers(Collection<User> users, Message message) { for (User user : users) { sendMessageToUser(user, message); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -