客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这种方式实现的,当然也有使用RemoteSharedObject来实现的,但本人不太喜欢用RemoteSharedObject,只是用RemoteSharedObject来进行广播等操作。
1.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的Application.java:
Java代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package red5.example.red5server; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IConnection; import org.red5.server.api.Red5; import org.red5.server.api.service.IServiceCapableConnection; public class Application extends ApplicationAdapter { private String userName; //客户端调用的方法 public String callFromClient(String userName) { this.userName = userName; callClient(); return "Hello:"+userName; } //服务器端调用客户端的方法 public void callClient() { IConnection conn=Red5.getConnectionLocal(); if (conn instanceof IServiceCapableConnection) { IServiceCapableConnection sc = (IServiceCapableConnection) conn; sc.invoke("callFromServer", new Object[]{"hi,"+userName+" this message from server"}); } } } |
PS:记得将编译好的class文件放入webapps\ROOT\WEB-INF\classes。
2.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的red5client001.mxml:
Xml代码
1. 2. 3. 4. 44. 45.
将编译好的swf拷贝到webapps\red5Server目录下。
3.重新启动tomcat 运行浏览器,在地址栏输入http://localhost:8080/red5Server/red5client001.html 看到弹出窗口了吧。
客户端和服务器端方法相互调用就这么简单,实际上原有的基于FMS开发的Flex客户端代码修改量是非常小的。在下一篇将讲解客户端和服务器端方法调用中的参数传递。