"<!DOCTYPEcross-domain-policySYSTEM
"">n"+
"<cross-domain-policy>n"+
"<allow-access-fromdomain="*"to-ports="20340">n"+
"<cross-domain-policy>";
byte[]b=newbyte[POLICY_REQUEST.length()];
DataInputStreamdataInputStream=newDataInputStream(socket.getInputStream());
dataInputStream.readFully(b);
Stringrequest=newString(b);
if(POLICY_REQUEST.equals(request)){
DataOutputStreamdataOutputStream=newDataOutputStream(socket.getOutputStream());
dataOutputStream.write(POLICY_FILE.getBytes());
dataOutputStream.flush();
dataOutputStream.close();
}elsethrownewIllegalArgumentException("unknownrequestformat"+request);
}
此代码建立了与客户端的成功连接。现在,服务器可以与客户端发起 “握手” 之类的协议,此时,服务器通常会指定一个惟一的 ID,并将其发送给客户端,此后,服务器可根据 ID 缓存套接字,在此之后,如果服务器需要向客户端推送某些数据,可以按照 ID 定位套接字,并使用其输出流。幸运的是,OpenLaszlo 也使用了相同的基于策略文件的机制,因而,同样的服务器代码适用于两种场景。
下面将介绍如何创建 Flex 套接字,随后将其与 Ajax 应用程序连接。
使用 Adobe Flex 打开客户端套接字
清单 4 中的代码展示了如何通过 Flex 打开客户端套接字:
清单 4. 通过 Flex 打开客户端
varsocket:XMLSocket=newXMLSocket();
registerevents:
socket.addEventListener(Event.CLOSE,closehandler);
socket.addEventListener(Event.CONNECT,connectHandler);
socket.addEventListener(Event.OPEN,openHandler);
socket.addEventListener(ProgressEvent.SOCKET_DATA,readHandler);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
socket.connect("localhost",20340);
完成 socket.connect() 调用后,Flex 将向服务器发送一条请求,要求提供策略文件,期待获得 XML 响应。完成之后,连接即建立,这个套接字现在即可用于从服务器推送数据。服务器推送技术
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-38618-4.html
南方黑芝麻糊虽然垄断性地位
这个教授是跟他兄弟合娶的老婆吧
为什么马云这么爱说啊