WEB页面通过Socket和服务器通讯(上)

16 篇文章 0 订阅
11 篇文章 0 订阅

最近空闲,整理一下上一个项目的部分资料。

由于需要web页面和服务器进行通讯,以前研究过Comet,听说过有那么几种方法可以实现服务器推。也没实际作过测试。

通过上次的项目也正好有个机会来研究下,测试研究了下网上的几种方法。觉得通过FLASH作为桥接和服务器通讯是一个不错的方法,一个是Flash Player的安装比较广泛,而且ActionScript3.0应该是一门全新的语言。更加的和Java比较接近,可以说已经是一门功能更加全面、面向对象的语言了。

本次实现的功能涉及到了以下技术或资料:

1.       ActionScript3.0

2.       JavaScript + Xml + XPath + HTML

3.       C#2.0 Socket

 

Flash 其实也有socket的实现,虽然功能有限,但也实现了基本的通讯功能。足够我们使用的了。本次使用的ActionScript3.0 Socket也进行的进一步的扩展,增加了更底曾的数据处理方法,即字节数组的处理等。

 

好了,下面来点实际的。

本次需要在页面上和Socket服务器进行通讯,先来看看Web的部分代码。

首先需要在页面上嵌入一个名称为myflash Flash对象。

然后用javascript获取当前的Flash对象,以和Flash进行交互。

这段脚本网上有的是,这里不多说了。不明白的Google一下。

下面要通过javascriptFlash交互。

GetFlashObject("myflash").sendMsg(msg);

sendMsg(msg:String);Flash里的方法,用来负责和负责把信息发送到服务器端。

function showMsg() {

//接受并显示通过Flash传递过来的信息,本方法由Flash调用,随后会介绍。

}

 

现在来看看Flash里的脚本代码。

import flash.utils.ByteArray;

import flash.net.Socket;//这个类包含了socket的通讯的功能

import flash.net.XMLSocket;//

import flash.external.ExternalInterface;//导入 ExternalInterface 类,这个类负责和javascript通讯

//……

 

先介绍下Flash Socket服务器如何建立通讯,然后在说明如何和javascript进行通讯。

1.首先定义一个Socket类型的对象

var __Socket:Socket;

2.然后注册各种监听器

3.尝试连接服务器

function Contect () {   

         ConfigureListeners();//注册监听器

         __Socket.connect("192.168.***.***",10000);

}

需要说明一下的是播放器升级到Flash Player 9以后,增加了一个安全限制。当播放器请求外部域资源时,需要一个安全策略文件。因此当首次和服务器连接成功后,服务器应该发送一个Xml字符串,以通知播放器有权进行访问。然后播放器将进行第二次的连接。关于服务器端如何发送安全策略文件我们将在下一节介绍。

所以我们要在连接服务器时,发送请求策略文件 OnConnect

4.请求策略文件

function RequestPolicyFile() {

         __Socket.writeUTFBytes(“PolicyFile”);

         __Socket.flush();

}

//连接成功的同时开始请求策略文件

function OnConnect(e:Event):void {

         RequestPolicyFile();

}

5.发送信息到服务器端 //js 调用此方法

function sendMsg(string:String) {

         if (! __Socket.connected) {

                  return;

         }

         __Socket.writeUTFBytes(string);

         __Socket.flush();

}

为了能够在页面上调用到sendMsg,我们必须在flash里面把此方法暴露给外面,用此方法声名

ExternalInterface.addCallback("sendMsg", sendMsg);

 

6.接受服务器端的信息

  

关于ActionScript3.0大家可以参考下Adobe 的语言参考资料。

下篇将介绍服务器端的相关功能。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值