67,512
社区成员
发帖
与我相关
我的任务
分享
public class ChatService {
public static List<User> users = new ArrayList<User>();
public String registerUser(String name, HttpServletRequest request) {
User user = new User();
user.setName(name);
user.setId(request.getSession().getId());
WebContextFactory.get().getScriptSession().setAttribute("user", user);
users.add(user);
updateUsers();
return user.getId();
}
public void updateUsers() {
Browser.withAllSessions(new Runnable() {
public void run() {
Util.removeAllOptions("users");
Util.addOptions("users", users, "name");
Util.removeAllOptions("receiver");
Util.addOptions("receiver", users, "name");
}
});
}
public void send(final String sender, final String receiverid, final String msg) {
Browser.withCurrentPageFiltered(
new ScriptSessionFilter() {
public boolean match(ScriptSession session) {
if (session.getAttribute("user") == null)
return false;
else
return ((User)session.getAttribute("user")).getName().equals(receiverid);
}
},
new Runnable() {
public void run() {
Collection<ScriptSession> colls = Browser.getTargetSessions();
for (ScriptSession scriptSession : colls) {
ScriptBuffer script = new ScriptBuffer();
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
String date = format.format(new Date());
System.out.println(msg);
String message = "<p><p style='color:blue'>"+sender+" "+date +"</p>" + msg+"</p>";
script.appendScript("test(");
script.appendData(message);
script.appendScript(",");
script.appendData(receiverid);
script.appendScript(");");
scriptSession.addScript(script);
}
}
}
);
}
public void list(){
Browser.withAllSessions(new Runnable() {
public void run() {
Collection<ScriptSession> colls = Browser.getTargetSessions();
for (ScriptSession scriptSession : colls) {
System.out.println(scriptSession.getId());
}
}
});
}
}