81,092
社区成员
发帖
与我相关
我的任务
分享
package com.coreware.ems.chat.action;
import java.util.Collection;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONObject;
import org.directwebremoting.Browser;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.ScriptSessionFilter;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.impl.DefaultWebContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.coreware.ems.chat.dto.MessageDto;
import com.coreware.ems.chat.service.MessageService;
import com.coreware.ems.common.web.WebConstants;
import com.coreware.ems.security.control.LoginController;
import com.coreware.ems.security.control.login.LoginPackage;
import com.coreware.ems.security.service.UserService;
import com.coreware.framework.util.DateUtil;
@Controller
public class MessageAction {
@Resource
private UserService userService1;
@Autowired
private MessageService messageService;
@RequestMapping("dwr/send.do")
public void send(final String data) {
JSONObject jo = JSONObject.fromObject(data);
final MessageDto message = (MessageDto) JSONObject.toBean(jo,MessageDto.class);
message.setId(WebConstants.generateDefaultID());
message.setCreateDate(DateUtil.getCurrentDateTime());
message.setType("KPI");
final HttpServletRequest request=WebContextFactory.get().getHttpServletRequest();
LoginPackage lp=LoginController.getLoginPackage(request);
message.setCreateBy(lp.getLoginName());
messageService.save(message);
ScriptSession scriptSession = WebContextFactory.get().getScriptSession();
scriptSession.setAttribute("message", message);
//测试代码
DefaultWebContext wctx = (DefaultWebContext) WebContextFactory.get();
String currentPage = wctx.getCurrentPage();
Collection<ScriptSession> sessions = wctx.getScriptSessionsByPage(currentPage);
System.out.println(sessions.size());
//withAllSessionsFiltered
//withCurrentPageFiltered
Browser.withCurrentPage(new Runnable() {
public void run() {
Collection<ScriptSession> colls = Browser.getTargetSessions();
for (ScriptSession scriptSession : colls) {
ScriptBuffer script = new ScriptBuffer();
script.appendCall("console.log", "运行 send message方法");
script.appendCall("callback",JSONObject.fromObject(message));
scriptSession.addScript(script);
//ScriptSessions.addFunctionCall("callback",JSONObject.fromObject(message));
}
}
});
}
}