• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>FMS>文章内容
  • 轻松搭建Flash Media Server聊天室
  • 来源:flashmx.com 作者:flashmx 2008-06-08 【

    核心提示:户端的someoneTalk实际上是触发了服务器端的application.broadcastMsg,同时再回调客户端预定义的talk函数并显示消息,便搭成了聊天室。
 

  客户端预定义talk函数响应来自服务器端的消息,服务器端用application.broadcastMsg来广播客户端用户的 someoneTalk。换句话说,客户端的someoneTalk实际上是触发了服务器端的application.broadcastMsg,同时再回调客户端预定义的talk函数并显示消息,便搭成了聊天室。
服务器端代码如下:
function broadcast (msg) { //trace(msg); application.broadcastMsg(’talk’, msg); }
客户端代码如下:
_nc = new NetConnection();
_nc.talk = function(msg) { msg_txt.text += msg + ‘\n’; };
_nc.connect(’rtmp://x/chat’);
talk_btn.onRelease = function() {
_nc.call(’someoneTalk’, null, name_txt.text, send_txt.text);
}
onKeyDown = function () {
if(Key.isDown(Key.ENTER)){ _nc.call(’someoneTalk’, null, name_txt.text, send_txt.text);
}
}
Key.addListener(this);
application.onConnect = function (client) { this.acceptConnection(client);
broadcast(’__ ‘ + client.ip + ‘ 进来了 __’);
}
application.onDisconnect = function (client) {
broadcast(’__ ‘ + client.ip + ‘ 出去了 __’);
}
Client.prototype.someoneTalk = function (n, w) {
broadcast(n + ‘(’ + this.ip + ‘) 说道: ‘ + w);
}
友情提示:
也可以用SharedObject的send方法向所有订阅此so的客户端发送消息以达到聊天的效果,但她无法有效地将当前聊天者的ip地址等信息广播出去。我已经试过了,谁要有兴趣的话也不妨试一试。



上一篇:FMS 3组件ConnectionLight的Flex版本   下一篇:在FMS编程检测摄像头是否被占用百分百有效的方法
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)