学习使用dwr 中的push技术 服务器发送一个广播,让每一个客户端都能接收到这个广播。
2009-11-25 20:53
525 查看
dwr里面的push技术可以做这样的事情:服务器发送一个广播,让每一个客户端都能接收到这个广播。一般的做法,就是让客户端每隔一定时间刷新一下,获取服务器发送的请求,这种方法可以,不过性能一定是最低的。dwr的push技术是让服务器每次发送广播时,把这个广播推送给客户端,不用客户端去刷新,据说是dwr的推送是基于长连接的,性能不错,具体的原理,我暂时也没搞清楚,先不管这些了,先实现了再说。
这里我假设你已经会用dwr的基本使用了。
修改web.xml,启用dwr的Reverse Ajax,也就是我们要用的push技术:
添加一个html页面,用来接收服务端广播:
<mce:script type='text/javascript' src="dwr/engine.js" mce_src="dwr/engine.js"></mce:script>
<mce:script type="text/javascript"><!--
dwr.engine.setActiveReverseAjax(true);
function showMessage(msg)
{
alert(msg);
}
// --></mce:script>
打开添加的html页面,然后打开Servlet发送一个广播,哈哈,html页面就会自动弹出一个javascript对话框,到此,dwr的推送就完成了。
这里我假设你已经会用dwr的基本使用了。
修改web.xml,启用dwr的Reverse Ajax,也就是我们要用的push技术:
public class TestServlet extends HttpServlet { public TestServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServerContext wctx = ServerContextFactory.get(getServletContext()); Collection<ScriptSession> sessions = wctx.getAllScriptSessions(); // Collection<ScriptSession> sessions = // wctx.getScriptSessionsByPage("/poject/test.html"); String msg = request.getParameter("msg"); if(msg==null) { msg = "empty"; } ScriptBuffer script = new ScriptBuffer(); script.appendScript("showMessage(").appendData(msg) .appendScript(");"); for (ScriptSession session : sessions) { session.addScript(script); } } }
添加一个html页面,用来接收服务端广播:
<mce:script type='text/javascript' src="dwr/engine.js" mce_src="dwr/engine.js"></mce:script>
<mce:script type="text/javascript"><!--
dwr.engine.setActiveReverseAjax(true);
function showMessage(msg)
{
alert(msg);
}
// --></mce:script>
打开添加的html页面,然后打开Servlet发送一个广播,哈哈,html页面就会自动弹出一个javascript对话框,到此,dwr的推送就完成了。
相关文章推荐
- 学习使用dwr 中的push技术 服务器发送一个广播,让每一个客户端都能接收到这个广播。
- “黑马程序员”使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印
- 黑马程序员——使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
- 10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
- dwr 实现发布公告功能(服务器发送,客户端全部可以同时接收)
- 如何在WebService接收一个XML文件并解析,客户端如何发送这个XML文件?急求简单代码示例。。
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- JSP服务器什么时候将cookie发送给客户端?一次请求中在一个组件中创建了Cookie,在另外一个组件中能接收到值么?
- 使用DWR长连接技术实现客户端一对一发送消息
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- 技术文档:使用JavaFX Script 进行客户端-服务器通信(eNew 第二十八期/2007.09)
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- 使用Netty构建一个多线程服务器与客户端
- 使用jrtplib写的一个简单服务器和客户端程序
- c#如何使用socket发送一条记录再接收一条记录,服务器端及客户端如何编写,初学。。最好有代码,谢谢!
- 简单socket服务(三)实现多客户端向服务器发送数据并保证服务器接收到数据
- 编写Socket客户端和服务器程序,客户端发送一个包含多个数字的字符串给服务器,服务器排序后返回给客户端,要求服务器能连续不断地服务。
- 让JRTPLIB 发送/接收数据时使用同一个端口
- 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。
- java实现代理服务器,接收客户端连接,发送到对应服务器