📄 samplechat.java
字号:
package com.signorinolong.test.chat;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import com.signorinolong.test.chat.model.Message;
import com.signorinolong.test.chat.model.User;
public class SampleChat implements Chat {
private UserManager userManager;
private MessageManager messageManager;
public SampleChat() {
// TODO Auto-generated constructor stub
}
public MessageManager getMessageManager() {
return messageManager;
}
public void setMessageManager(MessageManager messageManager) {
this.messageManager = messageManager;
}
public UserManager getUserManager() {
return userManager;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public Map getAllMessage() {
// TODO Auto-generated method stub
return null;
}
public List getMessageByChannel(String channel) {
// TODO Auto-generated method stub
return messageManager.getMessage(channel);
}
public Map getMessageByUser(String username) {
// TODO Auto-generated method stub
User user = userManager.getUser(username);
HashMap<String, LinkedList<Message>> messages = new HashMap<String, LinkedList<Message>>();
messages.put("user", user.getMessages());
List<String> channels = user.getChanels();
for (int i = 0, n = channels.size(); i < n; i++) {
messages.put(channels.get(i), (LinkedList<Message>) messageManager
.getMessage(channels.get(i)));
}
return messages;
}
public void sendMessage(String user, String message, String channel) {
// TODO Auto-generated method stub
//测试使用
userManager.login(user);
userManager.getUser(user).addChanel(channel);
messageManager.addChannel(channel);
messageManager.addMessage(channel, user, message);
HashMap<String, LinkedList<Message>> messages = (HashMap<String, LinkedList<Message>>) getMessageByUser(user);
WebContext wctx = WebContextFactory.get();
String currentPage = wctx.getCurrentPage();
ScriptBuffer script = new ScriptBuffer();
script.appendScript("receiveUserMessages(").appendData(
messages.get("user")).appendScript(");");
script.appendScript("receivePublicMessages(").appendData(messages.get("public")).appendScript(");");
script.appendScript("receiveUserList(").appendData(userManager.getUserList()).appendScript(");");
Collection pages = wctx.getScriptSessionsByPage(currentPage);
for (Iterator it = pages.iterator(); it.hasNext();) {
ScriptSession otherSession = (ScriptSession) it.next();
otherSession.addScript(script);
}
}
public void sendMessageToUser(String fromuser, String message, String touser) {
// TODO Auto-generated method stub
messageManager.addMessageToUser( fromuser, message, touser);
/*HashMap<String, LinkedList<Message>> messages = (HashMap<String, LinkedList<Message>>) getMessageByUser(touser);*/
/*WebContext wctx = WebContextFactory.get();
String currentPage = wctx.getCurrentPage();
ScriptBuffer script = new ScriptBuffer();
script.appendScript("receiveUserMessages(").appendData(messages.get("user")).appendScript(");");
script.appendScript("receivePublicMessages(").appendData(messages.get("public")).appendScript(");");
script.appendScript("receiveUserList(").appendData(userManager.getUserList()).appendScript(");");
Collection pages = wctx.getScriptSessionsByPage(currentPage);
for (Iterator it = pages.iterator(); it.hasNext();) {
ScriptSession otherSession = (ScriptSession) it.next();
otherSession.addScript(script);
}*/
}
public void startWork() {
// TODO Auto-generated method stub
WebContext wctx = WebContextFactory.get();
final ScriptSession scriptSession = wctx.getScriptSession();
Thread worker = new Thread(new Runnable()
{
public void run()
{
int count = 0;
while (count < 100)
{
count++;
try
{
Thread.sleep(100000);
scriptSession.addScript(new ScriptBuffer("receiveUserMessages();"));
}
catch (Exception ex)
{
}
}
}
});
worker.start();
}
public LinkedList<Message> getUserMessage(String user) {
// TODO Auto-generated method stub
HashMap<String, LinkedList<Message>> messages = (HashMap<String, LinkedList<Message>>) getMessageByUser(user);
return messages.get("user");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -