81,122
社区成员




//后台
//用来存储session的map
private static Map<String,ScriptSession> ONLINE_SCRIPTSESSIONS=new HashMap<String,ScriptSession>();
//用户进入页面的时候将session取出加入map中
WebContext wctx = WebContextFactory.get();
ScriptSession scriptSession = wctx.getScriptSession();
String userID = getUserSession().getUserID();
ONLINE_SCRIPTSESSIONS.put(userID,scriptSession);
//发送消息后,进行推送到前台的myceshi
ScriptBuffer mainScript = new ScriptBuffer();
mainScript.appendScript("myceshi();");
//ONLINE_SCRIPTSESSIONS.get(toUserCode),打印发现,获取的session是正确的。
if(ONLINE_SCRIPTSESSIONS.containsKey(toUserCode))
{
ONLINE_SCRIPTSESSIONS.get(toUserCode).addScript(mainScript);
}
<script type='text/javascript' src='/pen/dwr/engine.js'></script>
<script type='text/javascript' src='/pen/dwr/interface/MessageService.js'></script>
<script>
$(document).ready(function(){
//开启翻转
dwr.engine.setActiveReverseAjax(true);
});
//测试的,看是否推送成功
function myceshi()
{
alert("fasdfsdfasdfasdf");
}
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<description>使用服务器推技术(反转AJAX)</description>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>initApplicationScopeCreatorsAtStartup</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/**/dwr.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<dwr>
<allow>
<create creator="spring" javascript="SAM_MessageService">
<param name="beanName" value="SAM_MessageBO" />
</create>
<convert converter="bean" match="com.pul.sam.message.data.*" />
</allow>
<signatures>
<![CDATA[
import com.pul.sam.message.data.TMessage;
SAM_MessageService.changeState(List<TMessage> list);
SAM_MessageService.opDeleteMessages(List<TMessage> list);
]]>
</signatures>
</dwr>
beans的定义
<bean id="SAM_MessageBO" class="com.pul.sam.message.MessageBO" parent="baseBO">
<property name="instantMessageService">
<ref bean="instantMessageService" />
</property>