结合WebSocket编写WebGL综合场景示例

在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制。

首先是场景截图:

上图在场景中导入一个Babylon骨骼模型,使用asdw、空格、鼠标控制加速度移动,在移动时播放骨骼动画。

上图在场景中加入更多的骨骼模型(兔子),兔子感知到人类接近后会加速远离人类。

上图,一个局域网中的新玩家进入场景,(他们头上的数字是WebSocket分配的session id),兔子们受到0和1的叠加影响。

具体实现:

一、工程结构:

前台WebStorm工程:

其中map.jpg是地形高度图,tree.jpg不是树而是地面泥土的纹理。。。

LIB文件夹里是引用的第三方库(babylon.max.js是2.4版),MYLIB文件夹里是我自己编写或整理修改的库,PAGE里是专用于此网页的脚本文件

  其中FileText.js是js前台文件处理库(这里只用到了其中的产生日期字符串函数)

  MoveWeb.js是加速度计算库

  Sdyq.js里是对物体对象的定义和操作监听

  Player.js里是继承了物体对象的玩家对象和动物对象的定义

  utils是一些其他工具

  View是页面控制库

MODEL文件夹里是人物和兔子的骨骼模型文件。

后台MyEclipse工程:

使用JDK1.7,因为Tomcat v8.0里包含了WebSocket所用的库,所以不需要引入额外jar包,只写了一个类。

二、基本场景构建和骨骼模型导入:

html页面文件:

 View
Code

其中包含对页面尺寸大小变化的响应和一些全局变量的定义

scene_link.js文件中包含场景的构建和模型导入:

1、在createScene()方法的开头部分建立了一个基本的PlayGround场景:

 1 engine = new BABYLON.Engine(canvas, true);
 2     engine.displayLoadingUI();
 3     scene = new BABYLON.Scene(engine);
 4
 5     //在场景中启用碰撞检测
 6     scene.collisionsEnabled = true;
 7     //scene.workerCollisions = true;//启动webworker进程处理碰撞,确实可以有效使用多核运算,加大帧数!!
 8     //但是worker是异步运算的,其数据传输策略会导致movewithcollition执行顺序与期望的顺序不符
 9
10     //定向光照
11     var LightDirectional = new BABYLON.DirectionalLight("dir01", new BABYLON.Vector3(-2, -4, 2), scene);
12     LightDirectional.diffuse = new BABYLON.Color3(1, 1, 1);//散射颜色
13     LightDirectional.specular = new BABYLON.Color3(0, 0, 0);//镜面反射颜色
14     LightDirectional.position = new BABYLON.Vector3(250, 400, 0);
15     LightDirectional.intensity = 1.8;//强度
16     shadowGenerator = new BABYLON.ShadowGenerator(1024, LightDirectional);//为该光源建立阴影生成器,用在submesh上时一直在报错,不知道为了什么
17
18     //弧形旋转相机
19     cameraArcRotative[0] = new BABYLON.ArcRotateCamera("CameraBaseRotate", -Math.PI/2, Math.PI/2.2, 12, new BABYLON.Vector3(0, 5.0, 0), scene);
20     cameraArcRotative[0].wheelPrecision = 15;//鼠标滚轮?
21     cameraArcRotative[0].lowerRadiusLimit = 2;
22     cameraArcRotative[0].upperRadiusLimit = 22;
23     cameraArcRotative[0].minZ = 0;
24     cameraArcRotative[0].minX = 4096;
25     scene.activeCamera = cameraArcRotative[0];
26     cameraArcRotative[0].attachControl(canvas);//控制关联
27
28     //地面
29     //name,url,width,height,subdivisions,minheight,maxheight,updateble,onready,scene
30     ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "../IMAGE/map.jpg", 1000, 1000, 100, 0, 60, scene, true);//地面类型的网格
31     var groundMaterial = new BABYLON.StandardMaterial("groundMat", scene);//泥土材质
32     groundMaterial.diffuseTexture = new BABYLON.Texture("../IMAGE/tree.png", scene);//地面的纹理贴图
33     groundMaterial.diffuseTexture.uScale = 50.0;//纹理重复效果
34     groundMaterial.diffuseTexture.vScale = 50.0;
35     ground.material = groundMaterial;
36     ground.checkCollisions = true;//检测碰撞
37     ground.receiveShadows = true;//接收影子
38
39     //墙
40     var Mur = BABYLON.Mesh.CreateBox("Mur", 1, scene);
41     Mur.scaling = new BABYLON.Vector3(15, 6, 1);
42     Mur.position.y = 20;
43     Mur.position.z = 20;
44     Mur.checkCollisions = true;

其中各个方法的具体用法可以参考官方的基础教程

2、接下来是在场景中导入第一个人物的骨骼模型:

 1 //角色导入,加载哪个mesh、文件目录、文件名、加入场景、回调函数
 2     BABYLON.SceneLoader.ImportMesh("", "../MODEL/him/", "him.babylon", scene, function (newMeshes, particleSystems, skeletons)
 3     {//载入完成的回调函数
 4         var Tom=new Player;
 5         var obj_p={};//初始化参数对象
 6         obj_p.mesh=newMeshes[0];//网格数据
 7         obj_p.scaling=new BABYLON.Vector3(0.05, 0.05, 0.05);//缩放
 8         obj_p.position=new BABYLON.Vector3(-5.168, 30.392, -7.463);//位置
 9         obj_p.rotation=new BABYLON.Vector3(0, 3.9, 0);// 旋转
10         obj_p.checkCollisions=true;//使用默认的碰撞检测
11         obj_p.ellipsoid=new BABYLON.Vector3(0.5, 1, 0.5);//碰撞检测椭球
12         obj_p.ellipsoidOffset=new BABYLON.Vector3(0, 2, 0);//碰撞检测椭球位移
13         obj_p.skeletonsPlayer=skeletons;
14         obj_p.methodofmove="controlwitha";
15         obj_p.name=username;
16         obj_p.id=id;
17         obj_p.p1="";
18         obj_p.p2="../MODEL/him/";
19         obj_p.p3="him.babylon";
20         var len=newMeshes.length;//对于复杂的模型来说newMeshes的其他部分也必须保存下来
21         var arr=[];
22         for(var i=1;i<len;i++)
23         {
24             arr.push(newMeshes[i]);
25         }
26         obj_p.submeshs=arr;
27
28         Tom.init(
29             obj_p
30         );
31         arr_myplayers[username]=Tom;
32
33         if(state=="online")
34         {
35             var arr=[];
36             arr.push("addnewplayer");
37             arr.push(Tom.mesh.scaling.x);
38             arr.push(Tom.mesh.scaling.y);
39             arr.push(Tom.mesh.scaling.z);
40             arr.push(Tom.mesh.position.x);
41             arr.push(Tom.mesh.position.y);
42             arr.push(Tom.mesh.position.z);
43             arr.push(Tom.mesh.rotation.x);
44             arr.push(Tom.mesh.rotation.y);
45             arr.push(Tom.mesh.rotation.z);
46             arr.push(Tom.p1);
47             arr.push(Tom.p2);
48             arr.push(Tom.p3);
49             arr.push(Tom.meshname);
50             var dt=new Date();
51             console.log(dt.getTime()+"send addnewplayer"+id);
52             doSend(arr.join("@"));
53         }
54
55         cameraArcRotative[0].alpha = -parseFloat(arr_myplayers[username].mesh.rotation.y) - 4.69;//初始化相机角度
56
57     });

  其中BABYLON.SceneLoader.ImportMesh是一个异步的把服务器端场景文件导入本地内存的方法,第一个参数表示导入场景文件中的哪一个Mesh,为空表示都导入(一个场景文件里可能包含多个模型,但该示例中的场景文件里只有一个模型,所以也叫做模型文件),第二个参数是文件所在的相对路径,第三个参数是文件名,第四个参数是文件加入的场景,第五个参数是导入完成后的回调函数。

  回调函数的newMeshes参数是所有导入的Mesh组成的数组,skeletons参数是所有导入的骨骼动画数组。事实上一个模型可能由多个mesh组合而成,比如示例中的him模型的newMeshes[0]只是一个空壳,newMeshes[1]到newMeshes[5]才是模型各个部分的实际Mesh,后五个Mesh是newMeshes[0]的“submesh”,newMeshes[0]是后五个Mesh的parent,在理想情况下这些Mesh之间的关系和Mesh与骨骼动画(skeleton)之间的关系由Babylon引擎自动管理。

  在回调函数中,定义Tom为一个Player“类”对象,第五行定义的obj_p对象是Player对象的初始化参数对象,Player.init()方法定义在player.js文件中:

 1 //玩家对象
 2 Player=function()
 3 {
 4     sdyq.object.call(this);
 5 }
 6 Player.prototype=new sdyq.object();
 7 Player.prototype.init=function(param)
 8 {
 9     param = param || {};
10     sdyq.object.prototype.init.call(this,param);//继承原型的方法
11     this.flag_standonground=0;//是否接触地面
12     this.keys={w:0,s:0,a:0,d:0,space:0,ctrl:0,shift:0};//按键是否保持按下,考虑到多客户端并行,那么势必每个player都有自己的keys!!
13     this.flag_runfast=1;//加快速度
14     this.name=param.name;
15     this.id=param.id;
16     this.p1=param.p1;
17     this.p2=param.p2;
18     this.p3=param.p3;
19 。。。

  可以看到Player对象继承自sdyq.object对象,Player对象的原型是sdyq.object对象,在Player对象的init方法中,先初始化属于原型的属性,再初始化自己这个“类”新添加的属性。

  sdyq.object对象的定义在Sdyq.js文件中:

 1 //物体本身的属性和初始化
 2 sdyq={};//3D引擎
 3 sdyq.object=function()
 4 {//在地面上加速度运动的物体
 5
 6 }
 7 sdyq.object.prototype.init = function(param)
 8 {
 9     this.keys={w:0,s:0,a:0,d:0,space:0,ctrl:0,shift:0};//按键是否保持按下
10     this.witha0={forward:0,left:0,up:-9.82};//非键盘控制产生的加速度
11     this.witha={forward:0,left:0,up:-9.82};//环境加速度,包括地面阻力和重力,现在还没有风力
12     this.witha2={forward:0,left:0,up:0};//键盘控制加速度与物体本身加速度和非键盘控制产生的加速度合并后的最终加速度
13     this.v0={forward:0,left:0,up:0};//上一时刻的速度
14     this.vt={forward:0,left:0,up:0};//下一时刻的速度
15     this.vm={forward:15,backwards:5,left:5,right:5,up:100,down:100};//各个方向的最大速度
16     //this.flag_song=0;//是否接触地面
17     this.flag_runfast=1;//加快速度
18     this.ry0=0;//上一时刻的y轴转角
19     this.ryt=0;//下一时刻的y轴转角
20     this.rychange=0;//y轴转角差
21     this.mchange={forward:0,left:0,up:0};//物体自身坐标系上的位移
22     this.vmove=new BABYLON.Vector3(0,0,0);//世界坐标系中每一时刻的位移和量
23     this.py0=0;//记录上一时刻的y轴位置,和下一时刻比较确定物体有没有继续向下运动!!
24
25     param = param || {};
26     this.mesh=param.mesh;
27     this.mesh.scaling=param.scaling;
28     this.mesh.position=param.position;
29     this.mesh.rotation=param.rotation;
30     this.mesh.checkCollisions=param.checkCollisions;
31     this.mesh.ellipsoid=param.ellipsoid;
32     this.mesh.ellipsoidOffset=param.ellipsoidOffset;
33     this.meshname=this.mesh.name;
34     this.skeletonsPlayer=param.skeletonsPlayer||[];
35     this.submeshs=param.submeshs;
36     this.ry0=param.mesh.rotation.y;
37     this.py0=param.mesh.position.y;
38     this.countstop=0;//记录物体静止了几次,如果物体一直静止就停止发送运动信息
39
40     this.PlayAnnimation = false;
41
42     this.methodofmove=param.methodofmove||"";
43     switch(this.methodofmove)
44     {
45         case "controlwitha":
46         {
47             window.addEventListener("keydown", onKeyDown, false);//按键按下
48             window.addEventListener("keyup", onKeyUp, false);//按键抬起
49             break;
50         }
51         default :
52         {
53             break;
54         }
55     }
56 }

  sdyq.object对象的初始化方法中包含了对mesh姿态的详细设定、对键盘操作的监听设定和适用于加速度运动的各项参数设定,各种加速度运动的物体都可以用sdyq.object对象来扩展产生。

  在Player对象的初始化方法中还为每个玩家添加了id显示(头上的那个数字):

 1 //在玩家头上显示名字,clone时这个也会被clone过去,要处理一下!!!!
 2     var lab_texture=new BABYLON.Texture.CreateFromBase64String(texttoimg2(this.id),"datatexture"+this.id,scene);//使用canvas纹理!!
 3     var materialSphere1 = new BABYLON.StandardMaterial("texture1"+this.id, scene);
 4     materialSphere1.diffuseTexture = lab_texture;
 5     var plane = BABYLON.Mesh.CreatePlane("plane"+this.id, 2.0, scene, false, BABYLON.Mesh.FRONTSIDE);
 6     //You can also set the mesh side orientation with the values : BABYLON.Mesh.FRONTSIDE (default), BABYLON.Mesh.BACKSIDE or BABYLON.Mesh.DOUBLESIDE
 7     materialSphere1.diffuseTexture.hasAlpha = true;//应用纹理的透明度
 8
 9     plane.position=new BABYLON.Vector3(0,75,0);//其父元素应用过0.05之缩放,故而这里位移量要*20
10     plane.rotation.y = Math.PI;
11     plane.scaling.x=20;
12     plane.scaling.y=4;
13     plane.parent=this.mesh;
14
15     plane.material=materialSphere1;
16     this.lab=plane;

  在这里使用了canvas现场产生纹理(术语叫“程序贴图”),其中texttoimg2()方法的定义在utils.js文件中:

 1 //把文字转变为图片jpeg
 2 function texttoimg(str)
 3 {
 4     var c=document.createElement("canvas");
 5     c.height=20;
 6     c.width=100;
 7     var context = c.getContext(‘2d‘);
 8     context.font="normal 15px sans-serif";
 9     context.clearRect(0, 0, canvas.width, canvas.height);
10     context.fillStyle="rgb(255,255,255)";
11     context.fillRect(0,0,canvas.width,canvas.height);
12     context.fillStyle = "rgb(0,0,0)";
13     context.textBaseline = ‘top‘;
14     context.fillText(str,(c.width-str.length*15)/2,0, c.width*0.9);
15     var str_src=c.toDataURL("image/jpeg");
16     return str_src;
17     //return c;
18 }
19 //把文字转变为图片PNG
20 function texttoimg2(str)
21 {
22     var c=document.createElement("canvas");
23     c.height=20;
24     c.width=100;
25     var context = c.getContext(‘2d‘);
26     context.font="normal 20px sans-serif";
27     context.clearRect(0, 0, canvas.width, canvas.height);
28     //context.fillStyle="rgb(255,255,255)";
29     //context.fillRect(0,0,canvas.width,canvas.height);
30     context.fillStyle = "rgb(255,255,255)";
31     context.textBaseline = ‘middle‘;//
32     context.fillText(str,(c.width-str.length*20)/2,10, c.width*0.9);
33     var str_src=c.toDataURL("image/png");
34     return str_src;
35     //return c;
36 }

  该代码综合网上多个教程修改而来,其中生成jpeg的难点在于canvas默认生成四通道图像,而jpeg在去除透明度通道时会自动将透明度通道变成黑色,于是jpeg一片漆黑,解决方法是先画一个不透明的白色矩形背景,挡住所有透明通道,再在白色背景上画图。

  在模型导入完毕后把Tom设为玩家列表对象arr_myplayers的一个属性,如果当前玩家处于在线状态,则还要把其加载状态同步给其他玩家,具体同步方式稍后介绍。

  最后把玩家的相机定位到玩家模型的身后,做第三方跟随视角状。

三、加速度运动控制

在scene_link.js文件的中部可以看到scene.registerBeforeRender()方法,这个方法的作用是在每次渲染前调用作为它的参数的方法,我们通过这个方法在每次渲染前对物体的下一步运动情况进行计算:

 1 scene.registerBeforeRender(function()
 2     {//每次渲染前
 3         if(scene.isReady() && arr_myplayers)
 4         {//场景加载完毕
 5             if(sceneCharger == false) {
 6                 engine.hideLoadingUI();//隐藏载入ui
 7                 sceneCharger = true;
 8             }
 9             if(ms0==0)
10             {//最开始,等一帧
11                 ms0=new Date();//设置初始时间
12                 schange=0;//初始化时间差
13             }
14             else
15             {
16                 mst = new Date();//下一时刻
17                 schange = (mst - ms0) / 1000;
18                 ms0=mst;//时间越过
19                 //对于这段时间内的每一个物体
20                 for (var key in arr_myplayers)//该客户端所控制的物体
21                 {
22                     var obj = arr_myplayers[key];
23                     switch(obj.methodofmove)
24                     {
25                         case "controlwitha":
26                         {
27                             movewitha(obj);
28                             //这里加上dosend!!!!,原地不动也发送吗?
29                             if (state == "online")
30                             {
31                                 if(obj.vmove.x==0&&obj.vmove.y==0&&obj.vmove.z==0&&obj.rychange==0)
32                                 {//如果位置和姿态不变
33                                     if(obj.countstop>0)
34                                     {//一直静止则不发送运动信息
35
36                                     }
37                                     else
38                                     {
39                                         obj.countstop+=1;
40                                         //当前位置,当前角度,当前移动,当前姿态变化
41                                         var arr = [];
42                                         arr.push("updatemesh");
43                                         arr.push(obj.mesh.position.x);
44                                         arr.push(obj.mesh.position.y);
45                                         arr.push(obj.mesh.position.z);
46                                         arr.push(obj.mesh.rotation.x);
47                                         arr.push(obj.mesh.rotation.y);
48                                         arr.push(obj.mesh.rotation.z);
49                                         arr.push(obj.vmove.x);
50                                         arr.push(obj.vmove.y);
51                                         arr.push(obj.vmove.z);
52                                         arr.push(obj.rychange);
53                                         doSend(arr.join("@"));
54                                     }
55                                 }
56                                 else
57                                 {
58                                     obj.countstop=0;
59                                     //当前位置,当前角度,当前移动,当前姿态变化
60                                     var arr = [];
61                                     arr.push("updatemesh");
62                                     arr.push(obj.mesh.position.x);
63                                     arr.push(obj.mesh.position.y);
64                                     arr.push(obj.mesh.position.z);
65                                     arr.push(obj.mesh.rotation.x);
66                                     arr.push(obj.mesh.rotation.y);
67                                     arr.push(obj.mesh.rotation.z);
68                                     arr.push(obj.vmove.x);
69                                     arr.push(obj.vmove.y);
70                                     arr.push(obj.vmove.z);
71                                     arr.push(obj.rychange);
72                                     doSend(arr.join("@"));
73                                 }
74                             }
75
76                             if((obj.vmove.x!=0||obj.vmove.y!=0||obj.vmove.z!=0||obj.rychange!=0)&&obj.PlayAnnimation==false)
77                             {//如果开始运动,启动骨骼动画
78                                 obj.PlayAnnimation=true;
79                                 obj.beginSP(0);
80                             }
81                             else if(obj.vmove.x==0&&obj.vmove.y==0&&obj.vmove.z==0&&obj.rychange==0&&obj.PlayAnnimation==true)
82                             {//如果运动结束,关闭骨骼动画
83                                 obj.PlayAnnimation=false;
84                                 scene.stopAnimation(obj.skeletonsPlayer[0]);
85                             }
86                             break;
87                         }
88                         default :
89                         {
90                             break;
91                         }
92                     }
93                 }
94 。。。

  这里的意思是说如果玩家列表里的玩家的运动方式(methodofmove)是"controlwitha",则使用movewitha(obj)方法计算其在这一时间段中的运动,当然,如果编写出了其他的运动方法也可以类似的扩展进来。

  movewitha(obj)方法定义在MoveWeb.js文件中:

1、初速度投影

 1 function movewitha(obj)//地面上带有加速度的运动,必须站在地上才能加速,与宇宙空间中的喷气式加速度相比较
 2 {
 3     obj.ryt=obj.mesh.rotation.y;
 4     obj.rychange=parseFloat(obj.ryt - obj.ry0);
 5     obj.ry0=obj.ryt;
 6     //将上一时刻的速度投影到下一时刻的坐标里
 7     var v0t = {forward: 0, left: 0, up: 0};
 8     v0t.forward = obj.v0.forward * parseFloat(Math.cos(obj.rychange)) + (-obj.v0.left * parseFloat(Math.sin(obj.rychange)));
 9     v0t.left = (obj.v0.forward * parseFloat(Math.sin(obj.rychange))) + (obj.v0.left * parseFloat(Math.cos(obj.rychange)));
10     v0t.up = obj.v0.up;
11     obj.v0 = v0t;

  物体在这一小段时间内可能绕y轴转过了一定角度,所以要把物体在上一时刻的自身坐标系速度投影到经过变化之后的自身坐标系中。

2、计算水平加速度,与水平位移

 1 //计算水平加速度
 2     if(obj.flag_standonground==1)//在地面上才能使用水平加速度
 3     {
 4         //移动速度产生的阻力,只考虑地面阻力,不考虑空气阻力
 5         if (obj.v0.forward == 0) {
 6             obj.witha.forward = 0;
 7         }
 8         else if (obj.v0.forward > 0) {
 9             obj.witha.forward = -0.5;
10         }
11         else {
12             obj.witha.forward = 0.5;
13         }
14         if (obj.v0.left == 0) {
15             obj.witha.left = 0;
16         }
17         else if (obj.v0.left > 0) {
18             obj.witha.left = -0.5;
19         }
20         else {
21             obj.witha.left = 0.5;
22         }
23         //最终加速度由环境加速度和物体自身加速度叠加而成
24         obj.witha2.forward = obj.witha.forward+obj.witha0.forward;
25         obj.witha2.left = obj.witha.left+obj.witha0.left;
26         //根据键盘操作设置加速度
27         //处理前后
28         if (obj.keys.w != 0) {
29             obj.witha2.forward += 5;
30         }
31         else if (obj.keys.s != 0) {
32             obj.witha2.forward -= 2;
33         }
34         //处理左右
35         if (obj.keys.a != 0 && obj.keys.d != 0) {//同时按下左右键则什么也不做
36
37         }
38         else if (obj.keys.a != 0) {
39             obj.witha2.left += 2;
40         }
41         else if (obj.keys.d != 0) {
42             obj.witha2.left -= 2;
43         }
44     }
45     else
46     {
47         obj.witha2.forward=0;
48         obj.witha2.left=0;
49     }
50     //根据水平加速度计算水平运动
51     if(obj.witha2.forward!=0)
52     {
53         obj.vt.forward = obj.v0.forward + obj.witha2.forward * schange;//速度变化
54         if((0 < obj.vt.forward && obj.vt.forward < obj.vm.forward) || (0 > obj.vt.forward && obj.vt.forward > -obj.vm.backwards))
55         {//在最大速度范围内
56             obj.mchange.forward = obj.witha2.forward * schange * schange + obj.v0.forward * schange;//加速度产生的距离变化
57         }
58         else if (obj.vm.forward <= obj.vt.forward) {//超出最大速度则按最大速度算
59             obj.vt.forward = obj.vm.forward;
60             obj.mchange.forward = obj.vt.forward * schange;
61         }
62         else if (-obj.vm.backwards >= obj.vt.forward) {
63             obj.vt.forward = -obj.vm.backwards;
64             obj.mchange.forward = obj.vt.forward * schange;
65         }
66     }
67     else {//无加速度时匀速运动
68         obj.mchange.forward = obj.v0.forward * schange;
69     }
70     if(obj.witha2.left!=0)
71     {
72         obj.vt.left = obj.v0.left + obj.witha2.left * schange;//速度变化
73         if((0 < obj.vt.left && obj.vt.left < obj.vm.left) || (0 > obj.vt.left && obj.vt.left > -obj.vm.right))
74         {//在最大速度范围内
75             obj.mchange.left = obj.witha2.left * schange * schange + obj.v0.left * schange;//加速度产生的距离变化
76         }
77         else if (obj.vm.left <= obj.vt.left) {
78             obj.vt.left = obj.vm.left;
79             obj.mchange.left = obj.vt.left * schange;
80         }
81         else if (-obj.vm.right >= obj.vt.left) {
82             obj.vt.left = -obj.vm.right;
83             obj.mchange.left = obj.vt.left * schange;
84         }
85     }
86     else {
87         obj.mchange.left = obj.v0.left * schange;
88     }

3、计算垂直加速度、垂直位移:

 1 //垂直加速度单独计算
 2
 3     //正在下落,但没有下落应有的距离
 4     if(obj.v0.up<0&&obj.flag_standonground==0&&((obj.py0-obj.mesh.position.y)<(-obj.mchange.up)/5))
 5     {
 6         obj.v0.up=0;
 7         obj.flag_standonground=1;//表示接触地面
 8         obj.witha.up=-0.5;//考虑到下坡的存在,还要有一点向下的分量,使其能够沿地面向下但又不至于抖动过于剧烈
 9         obj.vm.up=5;
10         obj.vm.down=5;
11     }
12     else if(obj.flag_standonground==1&&((obj.py0-obj.mesh.position.y)>(-obj.mchange.up)/5))//遇到了一个坑
13     {
14         obj.flag_standonground=0;
15         obj.witha.up=-9.82;
16         obj.vm.up=100;
17         obj.vm.down=100;
18     }
19     obj.witha2.up = obj.witha.up;
20     if (obj.witha2.up != 0&&(obj.flag_standonground==0||(obj.flag_standonground==1&&(obj.mchange.left!=0||obj.mchange.forward!=0)))) {//不在地面或者有水平位移才考虑上下加速移动
21
22         obj.vt.up = obj.v0.up + obj.witha2.up * schange;//速度变化
23         if ((0 < obj.vt.up && obj.vt.up < obj.vm.up) || (0 > obj.vt.up && obj.vt.up > -obj.vm.down)) {
24             obj.mchange.up = obj.witha2.up * schange * schange + obj.v0.up * schange;//加速度产生的距离变化
25         }
26         else if (obj.vm.up <= obj.vt.up) {
27             obj.vt.up = obj.vm.up;
28             obj.mchange.up = obj.vt.up * schange;
29         }
30         else if (-obj.vm.down >= obj.vt.up) {
31             obj.vt.up = -obj.vm.down;
32             obj.mchange.up = obj.vt.up * schange;
33         }
34     }
35     else {
36         obj.mchange.up = obj.v0.up * schange;
37     }

  Babylon初级教程中提供了两种现成的碰撞检测方法,其中一种能够较精确的检测到物体掉落在地面上,但不支持事件响应或者回调函数;另一种支持事件响应,但物体的碰撞检测边界太过粗糙,无法精确检测碰撞。所以我只好用“有没有在该方向上移动应有的距离”来暂时代替碰撞检测。

http://jy.xiangtan.gov.cn/e/space/?userid=563251?20161105.Xml&feed_filter=33272.html

http://jy.xiangtan.gov.cn/e/space/?userid=563253?20161105.Xml&feed_filter=68698.html

http://jy.xiangtan.gov.cn/e/space/?userid=563257?20161105.Xml&feed_filter=74857.html

http://jy.xiangtan.gov.cn/e/space/?userid=563259?20161105.Xml&feed_filter=38971.html

http://jy.xiangtan.gov.cn/e/space/?userid=563262?20161105.Xml&feed_filter=40115.html

http://jy.xiangtan.gov.cn/e/space/?userid=563263?20161105.Xml&feed_filter=13522.html

http://jy.xiangtan.gov.cn/e/space/?userid=563267?20161105.Xml&feed_filter=51620.html

http://jy.xiangtan.gov.cn/e/space/?userid=563270?20161105.Xml&feed_filter=12023.html

http://jy.xiangtan.gov.cn/e/space/?userid=563272?20161105.Xml&feed_filter=81032.html

http://jy.xiangtan.gov.cn/e/space/?userid=563274?20161105.Xml&feed_filter=60262.html

http://jy.xiangtan.gov.cn/e/space/?userid=563275?20161105.Xml&feed_filter=18882.html

http://jy.xiangtan.gov.cn/e/space/?userid=563277?20161105.Xml&feed_filter=07700.html

http://jy.xiangtan.gov.cn/e/space/?userid=563278?20161105.Xml&feed_filter=52630.html

http://jy.xiangtan.gov.cn/e/space/?userid=563282?20161105.Xml&feed_filter=33941.html

http://jy.xiangtan.gov.cn/e/space/?userid=563286?20161105.Xml&feed_filter=86937.html

http://jy.xiangtan.gov.cn/e/space/?userid=563289?20161105.Xml&feed_filter=51686.html

http://jy.xiangtan.gov.cn/e/space/?userid=563292?20161105.Xml&feed_filter=86779.html

http://jy.xiangtan.gov.cn/e/space/?userid=563291?20161105.Xml&feed_filter=04423.html

http://jy.xiangtan.gov.cn/e/space/?userid=563296?20161105.Xml&feed_filter=64754.html

http://jy.xiangtan.gov.cn/e/space/?userid=563299?20161105.Xml&feed_filter=83084.html

http://jy.xiangtan.gov.cn/e/space/?userid=563295?20161105.Xml&feed_filter=16327.html

http://jy.xiangtan.gov.cn/e/space/?userid=563304?20161105.Xml&feed_filter=21140.html

http://jy.xiangtan.gov.cn/e/space/?userid=563305?20161105.Xml&feed_filter=83297.html

http://jy.xiangtan.gov.cn/e/space/?userid=563311?20161105.Xml&feed_filter=89606.html

http://jy.xiangtan.gov.cn/e/space/?userid=563308?20161105.Xml&feed_filter=97463.html

http://jy.xiangtan.gov.cn/e/space/?userid=563315?20161105.Xml&feed_filter=62029.html

http://jy.xiangtan.gov.cn/e/space/?userid=563313?20161105.Xml&feed_filter=17616.html

http://jy.xiangtan.gov.cn/e/space/?userid=563320?20161105.Xml&feed_filter=17508.html

http://jy.xiangtan.gov.cn/e/space/?userid=563321?20161105.Xml&feed_filter=82238.html

http://jy.xiangtan.gov.cn/e/space/?userid=563324?20161105.Xml&feed_filter=06214.html

http://jy.xiangtan.gov.cn/e/space/?userid=563325?20161105.Xml&feed_filter=20067.html

http://jy.xiangtan.gov.cn/e/space/?userid=563329?20161105.Xml&feed_filter=62999.html

http://jy.xiangtan.gov.cn/e/space/?userid=563328?20161105.Xml&feed_filter=28369.html

http://jy.xiangtan.gov.cn/e/space/?userid=563332?20161105.Xml&feed_filter=64343.html

http://jy.xiangtan.gov.cn/e/space/?userid=563334?20161105.Xml&feed_filter=47556.html

http://jy.xiangtan.gov.cn/e/space/?userid=563338?20161105.Xml&feed_filter=98318.html

http://jy.xiangtan.gov.cn/e/space/?userid=563340?20161105.Xml&feed_filter=23262.html

http://jy.xiangtan.gov.cn/e/space/?userid=563337?20161105.Xml&feed_filter=47961.html

http://jy.xiangtan.gov.cn/e/space/?userid=563343?20161105.Xml&feed_filter=22759.html

http://jy.xiangtan.gov.cn/e/space/?userid=563351?20161105.Xml&feed_filter=35197.html

http://jy.xiangtan.gov.cn/e/space/?userid=563352?20161105.Xml&feed_filter=61345.html

http://jy.xiangtan.gov.cn/e/space/?userid=563354?20161105.Xml&feed_filter=35020.html

http://jy.xiangtan.gov.cn/e/space/?userid=563361?20161105.Xml&feed_filter=04160.html

http://jy.xiangtan.gov.cn/e/space/?userid=563357?20161105.Xml&feed_filter=88925.html

http://jy.xiangtan.gov.cn/e/space/?userid=563363?20161105.Xml&feed_filter=06787.html

http://jy.xiangtan.gov.cn/e/space/?userid=563364?20161105.Xml&feed_filter=76427.html

http://jy.xiangtan.gov.cn/e/space/?userid=563369?20161105.Xml&feed_filter=43970.html

http://jy.xiangtan.gov.cn/e/space/?userid=563370?20161105.Xml&feed_filter=35575.html

http://jy.xiangtan.gov.cn/e/space/?userid=563371?20161105.Xml&feed_filter=78996.html

http://jy.xiangtan.gov.cn/e/space/?userid=563372?20161105.Xml&feed_filter=42927.html

http://jy.xiangtan.gov.cn/e/space/?userid=563374?20161105.Xml&feed_filter=66317.html

http://jy.xiangtan.gov.cn/e/space/?userid=563375?20161105.Xml&feed_filter=60843.html

http://jy.xiangtan.gov.cn/e/space/?userid=563379?20161105.Xml&feed_filter=50544.html

http://jy.xiangtan.gov.cn/e/space/?userid=563380?20161105.Xml&feed_filter=81049.html

http://jy.xiangtan.gov.cn/e/space/?userid=563382?20161105.Xml&feed_filter=06259.html

http://jy.xiangtan.gov.cn/e/space/?userid=563384?20161105.Xml&feed_filter=30726.html

http://jy.xiangtan.gov.cn/e/space/?userid=563385?20161105.Xml&feed_filter=95990.html

http://jy.xiangtan.gov.cn/e/space/?userid=563386?20161105.Xml&feed_filter=24139.html

http://jy.xiangtan.gov.cn/e/space/?userid=563387?20161105.Xml&feed_filter=07056.html

http://jy.xiangtan.gov.cn/e/space/?userid=563388?20161105.Xml&feed_filter=43597.html

http://jy.xiangtan.gov.cn/e/space/?userid=563392?20161105.Xml&feed_filter=54800.html

http://jy.xiangtan.gov.cn/e/space/?userid=563391?20161105.Xml&feed_filter=38310.html

http://jy.xiangtan.gov.cn/e/space/?userid=563399?20161105.Xml&feed_filter=00996.html

http://jy.xiangtan.gov.cn/e/space/?userid=563400?20161105.Xml&feed_filter=11468.html

http://jy.xiangtan.gov.cn/e/space/?userid=563401?20161105.Xml&feed_filter=36096.html

http://jy.xiangtan.gov.cn/e/space/?userid=563402?20161105.Xml&feed_filter=89916.html

http://jy.xiangtan.gov.cn/e/space/?userid=563407?20161105.Xml&feed_filter=28900.html

http://jy.xiangtan.gov.cn/e/space/?userid=563408?20161105.Xml&feed_filter=60291.html

http://jy.xiangtan.gov.cn/e/space/?userid=563412?20161105.Xml&feed_filter=91113.html

http://jy.xiangtan.gov.cn/e/space/?userid=563410?20161105.Xml&feed_filter=40494.html

http://jy.xiangtan.gov.cn/e/space/?userid=563413?20161105.Xml&feed_filter=74947.html

http://jy.xiangtan.gov.cn/e/space/?userid=563414?20161105.Xml&feed_filter=77792.html

http://jy.xiangtan.gov.cn/e/space/?userid=563417?20161105.Xml&feed_filter=81036.html

http://jy.xiangtan.gov.cn/e/space/?userid=563419?20161105.Xml&feed_filter=33104.html

http://jy.xiangtan.gov.cn/e/space/?userid=563418?20161105.Xml&feed_filter=38010.html

http://jy.xiangtan.gov.cn/e/space/?userid=563425?20161105.Xml&feed_filter=40002.html

http://jy.xiangtan.gov.cn/e/space/?userid=563423?20161105.Xml&feed_filter=43353.html

http://jy.xiangtan.gov.cn/e/space/?userid=563429?20161105.Xml&feed_filter=63119.html

http://jy.xiangtan.gov.cn/e/space/?userid=563435?20161105.Xml&feed_filter=85746.html

http://jy.xiangtan.gov.cn/e/space/?userid=563436?20161105.Xml&feed_filter=25970.html

http://jy.xiangtan.gov.cn/e/space/?userid=563438?20161105.Xml&feed_filter=49363.html

http://jy.xiangtan.gov.cn/e/space/?userid=563439?20161105.Xml&feed_filter=37928.html

http://jy.xiangtan.gov.cn/e/space/?userid=563441?20161105.Xml&feed_filter=47128.html

http://jy.xiangtan.gov.cn/e/space/?userid=563443?20161105.Xml&feed_filter=84667.html

http://jy.xiangtan.gov.cn/e/space/?userid=563442?20161105.Xml&feed_filter=07586.html

http://jy.xiangtan.gov.cn/e/space/?userid=563446?20161105.Xml&feed_filter=85321.html

http://jy.xiangtan.gov.cn/e/space/?userid=563448?20161105.Xml&feed_filter=42118.html

http://jy.xiangtan.gov.cn/e/space/?userid=563453?20161105.Xml&feed_filter=66633.html

http://jy.xiangtan.gov.cn/e/space/?userid=563454?20161105.Xml&feed_filter=61782.html

http://jy.xiangtan.gov.cn/e/space/?userid=563458?20161105.Xml&feed_filter=58196.html

http://jy.xiangtan.gov.cn/e/space/?userid=563459?20161105.Xml&feed_filter=34152.html

http://jy.xiangtan.gov.cn/e/space/?userid=563460?20161105.Xml&feed_filter=86150.html

http://jy.xiangtan.gov.cn/e/space/?userid=563461?20161105.Xml&feed_filter=29309.html

http://jy.xiangtan.gov.cn/e/space/?userid=563465?20161105.Xml&feed_filter=99053.html

http://jy.xiangtan.gov.cn/e/space/?userid=563463?20161105.Xml&feed_filter=22383.html

http://jy.xiangtan.gov.cn/e/space/?userid=563467?20161105.Xml&feed_filter=61734.html

http://jy.xiangtan.gov.cn/e/space/?userid=563470?20161105.Xml&feed_filter=50132.html

http://jy.xiangtan.gov.cn/e/space/?userid=563469?20161105.Xml&feed_filter=45008.html

http://jy.xiangtan.gov.cn/e/space/?userid=563475?20161105.Xml&feed_filter=44735.html

http://jy.xiangtan.gov.cn/e/space/?userid=563474?20161105.Xml&feed_filter=11669.html

http://jy.xiangtan.gov.cn/e/space/?userid=563478?20161105.Xml&feed_filter=00164.html

http://jy.xiangtan.gov.cn/e/space/?userid=563479?20161105.Xml&feed_filter=01143.html

http://jy.xiangtan.gov.cn/e/space/?userid=563480?20161105.Xml&feed_filter=24352.html

http://jy.xiangtan.gov.cn/e/space/?userid=563483?20161105.Xml&feed_filter=38003.html

http://jy.xiangtan.gov.cn/e/space/?userid=563486?20161105.Xml&feed_filter=64671.html

http://jy.xiangtan.gov.cn/e/space/?userid=563487?20161105.Xml&feed_filter=55489.html

http://jy.xiangtan.gov.cn/e/space/?userid=563491?20161105.Xml&feed_filter=36847.html

http://jy.xiangtan.gov.cn/e/space/?userid=563493?20161105.Xml&feed_filter=05547.html

http://jy.xiangtan.gov.cn/e/space/?userid=563495?20161105.Xml&feed_filter=54501.html

http://jy.xiangtan.gov.cn/e/space/?userid=563498?20161105.Xml&feed_filter=39530.html

http://jy.xiangtan.gov.cn/e/space/?userid=563489?20161105.Xml&feed_filter=84011.html

http://jy.xiangtan.gov.cn/e/space/?userid=563500?20161105.Xml&feed_filter=69426.html

http://jy.xiangtan.gov.cn/e/space/?userid=563502?20161105.Xml&feed_filter=41482.html

http://jy.xiangtan.gov.cn/e/space/?userid=563503?20161105.Xml&feed_filter=85278.html

http://jy.xiangtan.gov.cn/e/space/?userid=563506?20161105.Xml&feed_filter=98058.html

http://jy.xiangtan.gov.cn/e/space/?userid=563508?20161105.Xml&feed_filter=73185.html

http://jy.xiangtan.gov.cn/e/space/?userid=563509?20161105.Xml&feed_filter=66610.html

http://jy.xiangtan.gov.cn/e/space/?userid=563510?20161105.Xml&feed_filter=92876.html

http://jy.xiangtan.gov.cn/e/space/?userid=563511?20161105.Xml&feed_filter=63944.html

http://jy.xiangtan.gov.cn/e/space/?userid=563516?20161105.Xml&feed_filter=46701.html

http://jy.xiangtan.gov.cn/e/space/?userid=563518?20161105.Xml&feed_filter=43632.html

http://jy.xiangtan.gov.cn/e/space/?userid=563521?20161105.Xml&feed_filter=10551.html

http://jy.xiangtan.gov.cn/e/space/?userid=563514?20161105.Xml&feed_filter=46057.html

http://jy.xiangtan.gov.cn/e/space/?userid=563524?20161105.Xml&feed_filter=45262.html

http://jy.xiangtan.gov.cn/e/space/?userid=563525?20161105.Xml&feed_filter=58440.html

http://jy.xiangtan.gov.cn/e/space/?userid=563526?20161105.Xml&feed_filter=95293.html

http://jy.xiangtan.gov.cn/e/space/?userid=563527?20161105.Xml&feed_filter=23299.html

http://jy.xiangtan.gov.cn/e/space/?userid=563531?20161105.Xml&feed_filter=15856.html

http://jy.xiangtan.gov.cn/e/space/?userid=563532?20161105.Xml&feed_filter=53929.html

http://jy.xiangtan.gov.cn/e/space/?userid=563534?20161105.Xml&feed_filter=34550.html

http://jy.xiangtan.gov.cn/e/space/?userid=563535?20161105.Xml&feed_filter=47496.html

http://jy.xiangtan.gov.cn/e/space/?userid=563537?20161105.Xml&feed_filter=60171.html

http://jy.xiangtan.gov.cn/e/space/?userid=563538?20161105.Xml&feed_filter=58693.html

http://jy.xiangtan.gov.cn/e/space/?userid=563539?20161105.Xml&feed_filter=49017.html

http://jy.xiangtan.gov.cn/e/space/?userid=563542?20161105.Xml&feed_filter=56028.html

http://jy.xiangtan.gov.cn/e/space/?userid=563540?20161105.Xml&feed_filter=17666.html

http://jy.xiangtan.gov.cn/e/space/?userid=563546?20161105.Xml&feed_filter=71371.html

http://jy.xiangtan.gov.cn/e/space/?userid=563549?20161105.Xml&feed_filter=75499.html

http://jy.xiangtan.gov.cn/e/space/?userid=563547?20161105.Xml&feed_filter=62266.html

http://jy.xiangtan.gov.cn/e/space/?userid=563552?20161105.Xml&feed_filter=57718.html

http://jy.xiangtan.gov.cn/e/space/?userid=563554?20161105.Xml&feed_filter=16603.html

http://jy.xiangtan.gov.cn/e/space/?userid=563560?20161105.Xml&feed_filter=17672.html

http://jy.xiangtan.gov.cn/e/space/?userid=563565?20161105.Xml&feed_filter=58353.html

http://jy.xiangtan.gov.cn/e/space/?userid=563561?20161105.Xml&feed_filter=28190.html

http://jy.xiangtan.gov.cn/e/space/?userid=563567?20161105.Xml&feed_filter=06584.html

http://jy.xiangtan.gov.cn/e/space/?userid=563568?20161105.Xml&feed_filter=32382.html

http://jy.xiangtan.gov.cn/e/space/?userid=563570?20161105.Xml&feed_filter=74887.html

http://jy.xiangtan.gov.cn/e/space/?userid=563569?20161105.Xml&feed_filter=75502.html

http://jy.xiangtan.gov.cn/e/space/?userid=563573?20161105.Xml&feed_filter=65874.html

http://jy.xiangtan.gov.cn/e/space/?userid=563575?20161105.Xml&feed_filter=14134.html

http://jy.xiangtan.gov.cn/e/space/?userid=563574?20161105.Xml&feed_filter=21474.html

http://jy.xiangtan.gov.cn/e/space/?userid=563578?20161105.Xml&feed_filter=95150.html

http://jy.xiangtan.gov.cn/e/space/?userid=563582?20161105.Xml&feed_filter=41999.html

http://jy.xiangtan.gov.cn/e/space/?userid=563585?20161105.Xml&feed_filter=03297.html

http://jy.xiangtan.gov.cn/e/space/?userid=563587?20161105.Xml&feed_filter=12811.html

http://jy.xiangtan.gov.cn/e/space/?userid=563586?20161105.Xml&feed_filter=90700.html

http://jy.xiangtan.gov.cn/e/space/?userid=563598?20161105.Xml&feed_filter=58800.html

http://jy.xiangtan.gov.cn/e/space/?userid=563600?20161105.Xml&feed_filter=02041.html

http://jy.xiangtan.gov.cn/e/space/?userid=563605?20161105.Xml&feed_filter=66211.html

http://jy.xiangtan.gov.cn/e/space/?userid=563604?20161105.Xml&feed_filter=63226.html

http://jy.xiangtan.gov.cn/e/space/?userid=563610?20161105.Xml&feed_filter=96505.html

http://jy.xiangtan.gov.cn/e/space/?userid=563609?20161105.Xml&feed_filter=86070.html

http://jy.xiangtan.gov.cn/e/space/?userid=563615?20161105.Xml&feed_filter=63994.html

http://jy.xiangtan.gov.cn/e/space/?userid=563614?20161105.Xml&feed_filter=79238.html

http://jy.xiangtan.gov.cn/e/space/?userid=563622?20161105.Xml&feed_filter=83987.html

http://jy.xiangtan.gov.cn/e/space/?userid=563616?20161105.Xml&feed_filter=66970.html

http://jy.xiangtan.gov.cn/e/space/?userid=563624?20161105.Xml&feed_filter=23915.html

http://jy.xiangtan.gov.cn/e/space/?userid=563629?20161105.Xml&feed_filter=25560.html

http://jy.xiangtan.gov.cn/e/space/?userid=563630?20161105.Xml&feed_filter=48048.html

http://jy.xiangtan.gov.cn/e/space/?userid=563632?20161105.Xml&feed_filter=34111.html

http://jy.xiangtan.gov.cn/e/space/?userid=563637?20161105.Xml&feed_filter=43907.html

http://jy.xiangtan.gov.cn/e/space/?userid=563634?20161105.Xml&feed_filter=54597.html

http://jy.xiangtan.gov.cn/e/space/?userid=563639?20161105.Xml&feed_filter=59621.html

http://jy.xiangtan.gov.cn/e/space/?userid=563641?20161105.Xml&feed_filter=15731.html

http://jy.xiangtan.gov.cn/e/space/?userid=563645?20161105.Xml&feed_filter=27865.html

http://jy.xiangtan.gov.cn/e/space/?userid=563646?20161105.Xml&feed_filter=22920.html

http://jy.xiangtan.gov.cn/e/space/?userid=563650?20161105.Xml&feed_filter=97725.html

http://jy.xiangtan.gov.cn/e/space/?userid=563649?20161105.Xml&feed_filter=89537.html

http://jy.xiangtan.gov.cn/e/space/?userid=563652?20161105.Xml&feed_filter=55182.html

http://jy.xiangtan.gov.cn/e/space/?userid=563653?20161105.Xml&feed_filter=89370.html

http://jy.xiangtan.gov.cn/e/space/?userid=563659?20161105.Xml&feed_filter=19543.html

http://jy.xiangtan.gov.cn/e/space/?userid=563656?20161105.Xml&feed_filter=48336.html

http://jy.xiangtan.gov.cn/e/space/?userid=563662?20161105.Xml&feed_filter=22567.html

http://jy.xiangtan.gov.cn/e/space/?userid=563660?20161105.Xml&feed_filter=29273.html

http://jy.xiangtan.gov.cn/e/space/?userid=563665?20161105.Xml&feed_filter=62840.html

http://jy.xiangtan.gov.cn/e/space/?userid=563667?20161105.Xml&feed_filter=91766.html

http://jy.xiangtan.gov.cn/e/space/?userid=563672?20161105.Xml&feed_filter=24996.html

http://jy.xiangtan.gov.cn/e/space/?userid=563674?20161105.Xml&feed_filter=54651.html

http://jy.xiangtan.gov.cn/e/space/?userid=563675?20161105.Xml&feed_filter=85573.html

http://jy.xiangtan.gov.cn/e/space/?userid=563671?20161105.Xml&feed_filter=39803.html

http://jy.xiangtan.gov.cn/e/space/?userid=563678?20161105.Xml&feed_filter=50885.html

http://jy.xiangtan.gov.cn/e/space/?userid=563677?20161105.Xml&feed_filter=59397.html

http://jy.xiangtan.gov.cn/e/space/?userid=563681?20161105.Xml&feed_filter=43155.html

http://jy.xiangtan.gov.cn/e/space/?userid=563685?20161105.Xml&feed_filter=53170.html

http://jy.xiangtan.gov.cn/e/space/?userid=563689?20161105.Xml&feed_filter=51333.html

http://jy.xiangtan.gov.cn/e/space/?userid=563694?20161105.Xml&feed_filter=53481.html

http://jy.xiangtan.gov.cn/e/space/?userid=563741?20161105.Xml&feed_filter=39712.html

http://jy.xiangtan.gov.cn/e/space/?userid=563756?20161105.Xml&feed_filter=81845.html

http://jy.xiangtan.gov.cn/e/space/?userid=563759?20161105.Xml&feed_filter=99838.html

http://jy.xiangtan.gov.cn/e/space/?userid=563780?20161105.Xml&feed_filter=08957.html

http://jy.xiangtan.gov.cn/e/space/?userid=563781?20161105.Xml&feed_filter=06564.html

http://jy.xiangtan.gov.cn/e/space/?userid=563783?20161105.Xml&feed_filter=63838.html

http://jy.xiangtan.gov.cn/e/space/?userid=563785?20161105.Xml&feed_filter=98569.html

http://jy.xiangtan.gov.cn/e/space/?userid=563786?20161105.Xml&feed_filter=29655.html

http://jy.xiangtan.gov.cn/e/space/?userid=563788?20161105.Xml&feed_filter=66111.html

http://jy.xiangtan.gov.cn/e/space/?userid=563789?20161105.Xml&feed_filter=18219.html

http://jy.xiangtan.gov.cn/e/space/?userid=563791?20161105.Xml&feed_filter=00805.html

http://jy.xiangtan.gov.cn/e/space/?userid=563792?20161105.Xml&feed_filter=22225.html

http://jy.xiangtan.gov.cn/e/space/?userid=563795?20161105.Xml&feed_filter=81336.html

http://jy.xiangtan.gov.cn/e/space/?userid=563796?20161105.Xml&feed_filter=76426.html

http://jy.xiangtan.gov.cn/e/space/?userid=563798?20161105.Xml&feed_filter=58622.html

http://jy.xiangtan.gov.cn/e/space/?userid=563800?20161105.Xml&feed_filter=65603.html

http://jy.xiangtan.gov.cn/e/space/?userid=563802?20161105.Xml&feed_filter=74478.html

http://jy.xiangtan.gov.cn/e/space/?userid=563804?20161105.Xml&feed_filter=20280.html

http://jy.xiangtan.gov.cn/e/space/?userid=563805?20161105.Xml&feed_filter=94521.html

http://jy.xiangtan.gov.cn/e/space/?userid=563807?20161105.Xml&feed_filter=41424.html

http://jy.xiangtan.gov.cn/e/space/?userid=563809?20161105.Xml&feed_filter=87139.html

http://jy.xiangtan.gov.cn/e/space/?userid=563811?20161105.Xml&feed_filter=03142.html

http://jy.xiangtan.gov.cn/e/space/?userid=563813?20161105.Xml&feed_filter=68768.html

http://jy.xiangtan.gov.cn/e/space/?userid=563814?20161105.Xml&feed_filter=07003.html

http://jy.xiangtan.gov.cn/e/space/?userid=563816?20161105.Xml&feed_filter=22439.html

http://jy.xiangtan.gov.cn/e/space/?userid=563818?20161105.Xml&feed_filter=98385.html

http://jy.xiangtan.gov.cn/e/space/?userid=563820?20161105.Xml&feed_filter=22938.html

http://jy.xiangtan.gov.cn/e/space/?userid=563821?20161105.Xml&feed_filter=95584.html

http://jy.xiangtan.gov.cn/e/space/?userid=563823?20161105.Xml&feed_filter=02865.html

http://jy.xiangtan.gov.cn/e/space/?userid=563824?20161105.Xml&feed_filter=81464.html

http://jy.xiangtan.gov.cn/e/space/?userid=563825?20161105.Xml&feed_filter=75577.html

http://jy.xiangtan.gov.cn/e/space/?userid=563830?20161105.Xml&feed_filter=59992.html

http://jy.xiangtan.gov.cn/e/space/?userid=563832?20161105.Xml&feed_filter=70228.html

http://jy.xiangtan.gov.cn/e/space/?userid=563833?20161105.Xml&feed_filter=84375.html

http://jy.xiangtan.gov.cn/e/space/?userid=563836?20161105.Xml&feed_filter=68682.html

http://jy.xiangtan.gov.cn/e/space/?userid=563837?20161105.Xml&feed_filter=37284.html

http://jy.xiangtan.gov.cn/e/space/?userid=563839?20161105.Xml&feed_filter=80732.html

http://jy.xiangtan.gov.cn/e/space/?userid=563840?20161105.Xml&feed_filter=30541.html

http://jy.xiangtan.gov.cn/e/space/?userid=563841?20161105.Xml&feed_filter=41978.html

http://jy.xiangtan.gov.cn/e/space/?userid=563843?20161105.Xml&feed_filter=44375.html

http://jy.xiangtan.gov.cn/e/space/?userid=563845?20161105.Xml&feed_filter=52411.html

http://jy.xiangtan.gov.cn/e/space/?userid=563848?20161105.Xml&feed_filter=38058.html

http://jy.xiangtan.gov.cn/e/space/?userid=563849?20161105.Xml&feed_filter=17561.html

http://jy.xiangtan.gov.cn/e/space/?userid=563853?20161105.Xml&feed_filter=89740.html

http://jy.xiangtan.gov.cn/e/space/?userid=563855?20161105.Xml&feed_filter=21028.html

http://jy.xiangtan.gov.cn/e/space/?userid=563872?20161105.Xml&feed_filter=89663.html

http://jy.xiangtan.gov.cn/e/space/?userid=563875?20161105.Xml&feed_filter=59640.html

http://jy.xiangtan.gov.cn/e/space/?userid=563877?20161105.Xml&feed_filter=22293.html

http://jy.xiangtan.gov.cn/e/space/?userid=563879?20161105.Xml&feed_filter=21499.html

http://jy.xiangtan.gov.cn/e/space/?userid=563882?20161105.Xml&feed_filter=96529.html

http://jy.xiangtan.gov.cn/e/space/?userid=563884?20161105.Xml&feed_filter=16437.html

http://jy.xiangtan.gov.cn/e/space/?userid=563888?20161105.Xml&feed_filter=92750.html

http://jy.xiangtan.gov.cn/e/space/?userid=563892?20161105.Xml&feed_filter=55036.html

http://jy.xiangtan.gov.cn/e/space/?userid=563893?20161105.Xml&feed_filter=62223.html

http://jy.xiangtan.gov.cn/e/space/?userid=563896?20161105.Xml&feed_filter=63656.html

http://jy.xiangtan.gov.cn/e/space/?userid=563899?20161105.Xml&feed_filter=26737.html

http://jy.xiangtan.gov.cn/e/space/?userid=563900?20161105.Xml&feed_filter=70451.html

http://jy.xiangtan.gov.cn/e/space/?userid=563902?20161105.Xml&feed_filter=25649.html

http://jy.xiangtan.gov.cn/e/space/?userid=563911?20161105.Xml&feed_filter=01439.html

http://jy.xiangtan.gov.cn/e/space/?userid=563913?20161105.Xml&feed_filter=31273.html

http://jy.xiangtan.gov.cn/e/space/?userid=563919?20161105.Xml&feed_filter=83343.html

http://jy.xiangtan.gov.cn/e/space/?userid=563922?20161105.Xml&feed_filter=69779.html

http://jy.xiangtan.gov.cn/e/space/?userid=563925?20161105.Xml&feed_filter=20141.html

http://jy.xiangtan.gov.cn/e/space/?userid=563928?20161105.Xml&feed_filter=96492.html

http://jy.xiangtan.gov.cn/e/space/?userid=563931?20161105.Xml&feed_filter=31072.html

http://jy.xiangtan.gov.cn/e/space/?userid=563932?20161105.Xml&feed_filter=94877.html

http://jy.xiangtan.gov.cn/e/space/?userid=563937?20161105.Xml&feed_filter=05664.html

http://jy.xiangtan.gov.cn/e/space/?userid=563939?20161105.Xml&feed_filter=56646.html

http://jy.xiangtan.gov.cn/e/space/?userid=563946?20161105.Xml&feed_filter=85855.html

http://jy.xiangtan.gov.cn/e/space/?userid=563947?20161105.Xml&feed_filter=17768.html

http://jy.xiangtan.gov.cn/e/space/?userid=563951?20161105.Xml&feed_filter=93363.html

http://jy.xiangtan.gov.cn/e/space/?userid=563959?20161105.Xml&feed_filter=22143.html

http://jy.xiangtan.gov.cn/e/space/?userid=563960?20161105.Xml&feed_filter=05500.html

http://jy.xiangtan.gov.cn/e/space/?userid=563964?20161105.Xml&feed_filter=95841.html

http://jy.xiangtan.gov.cn/e/space/?userid=563965?20161105.Xml&feed_filter=61647.html

http://jy.xiangtan.gov.cn/e/space/?userid=563968?20161105.Xml&feed_filter=72000.html

http://jy.xiangtan.gov.cn/e/space/?userid=563970?20161105.Xml&feed_filter=05134.html

http://jy.xiangtan.gov.cn/e/space/?userid=563971?20161105.Xml&feed_filter=50369.html

http://jy.xiangtan.gov.cn/e/space/?userid=563974?20161105.Xml&feed_filter=43278.html

http://jy.xiangtan.gov.cn/e/space/?userid=563976?20161105.Xml&feed_filter=57370.html

http://jy.xiangtan.gov.cn/e/space/?userid=563977?20161105.Xml&feed_filter=68464.html

http://jy.xiangtan.gov.cn/e/space/?userid=563982?20161105.Xml&feed_filter=54071.html

http://jy.xiangtan.gov.cn/e/space/?userid=563983?20161105.Xml&feed_filter=89074.html

http://jy.xiangtan.gov.cn/e/space/?userid=563985?20161105.Xml&feed_filter=24974.html

http://jy.xiangtan.gov.cn/e/space/?userid=563988?20161105.Xml&feed_filter=31584.html

http://jy.xiangtan.gov.cn/e/space/?userid=563990?20161105.Xml&feed_filter=20559.html

http://jy.xiangtan.gov.cn/e/space/?userid=563994?20161105.Xml&feed_filter=34591.html

http://jy.xiangtan.gov.cn/e/space/?userid=563996?20161105.Xml&feed_filter=33569.html

http://jy.xiangtan.gov.cn/e/space/?userid=563998?20161105.Xml&feed_filter=89027.html

http://jy.xiangtan.gov.cn/e/space/?userid=564001?20161105.Xml&feed_filter=05363.html

http://jy.xiangtan.gov.cn/e/space/?userid=564005?20161105.Xml&feed_filter=37610.html

http://jy.xiangtan.gov.cn/e/space/?userid=564009?20161105.Xml&feed_filter=71127.html

http://jy.xiangtan.gov.cn/e/space/?userid=564012?20161105.Xml&feed_filter=29676.html

http://jy.xiangtan.gov.cn/e/space/?userid=564014?20161105.Xml&feed_filter=29267.html

http://jy.xiangtan.gov.cn/e/space/?userid=564016?20161105.Xml&feed_filter=46700.html

http://jy.xiangtan.gov.cn/e/space/?userid=564018?20161105.Xml&feed_filter=54138.html

http://jy.xiangtan.gov.cn/e/space/?userid=564022?20161105.Xml&feed_filter=68123.html

http://jy.xiangtan.gov.cn/e/space/?userid=564024?20161105.Xml&feed_filter=55767.html

http://jy.xiangtan.gov.cn/e/space/?userid=564026?20161105.Xml&feed_filter=67972.html

http://jy.xiangtan.gov.cn/e/space/?userid=564029?20161105.Xml&feed_filter=58404.html

http://jy.xiangtan.gov.cn/e/space/?userid=564031?20161105.Xml&feed_filter=59877.html

http://jy.xiangtan.gov.cn/e/space/?userid=564033?20161105.Xml&feed_filter=39738.html

http://jy.xiangtan.gov.cn/e/space/?userid=564035?20161105.Xml&feed_filter=34334.html

http://jy.xiangtan.gov.cn/e/space/?userid=564038?20161105.Xml&feed_filter=31877.html

http://jy.xiangtan.gov.cn/e/space/?userid=564041?20161105.Xml&feed_filter=69129.html

http://jy.xiangtan.gov.cn/e/space/?userid=564043?20161105.Xml&feed_filter=15474.html

http://jy.xiangtan.gov.cn/e/space/?userid=564045?20161105.Xml&feed_filter=65932.html

http://jy.xiangtan.gov.cn/e/space/?userid=564048?20161105.Xml&feed_filter=93488.html

http://jy.xiangtan.gov.cn/e/space/?userid=564050?20161105.Xml&feed_filter=68939.html

http://jy.xiangtan.gov.cn/e/space/?userid=564052?20161105.Xml&feed_filter=09931.html

http://jy.xiangtan.gov.cn/e/space/?userid=564054?20161105.Xml&feed_filter=84286.html

http://jy.xiangtan.gov.cn/e/space/?userid=564056?20161105.Xml&feed_filter=93018.html

http://jy.xiangtan.gov.cn/e/space/?userid=564059?20161105.Xml&feed_filter=79343.html

http://jy.xiangtan.gov.cn/e/space/?userid=564060?20161105.Xml&feed_filter=89509.html

http://jy.xiangtan.gov.cn/e/space/?userid=564063?20161105.Xml&feed_filter=94129.html

http://jy.xiangtan.gov.cn/e/space/?userid=564066?20161105.Xml&feed_filter=01167.html

http://jy.xiangtan.gov.cn/e/space/?userid=564070?20161105.Xml&feed_filter=69133.html

http://jy.xiangtan.gov.cn/e/space/?userid=564074?20161105.Xml&feed_filter=89175.html

http://jy.xiangtan.gov.cn/e/space/?userid=564075?20161105.Xml&feed_filter=45181.html

http://jy.xiangtan.gov.cn/e/space/?userid=564078?20161105.Xml&feed_filter=66823.html

http://jy.xiangtan.gov.cn/e/space/?userid=564080?20161105.Xml&feed_filter=11566.html

http://jy.xiangtan.gov.cn/e/space/?userid=564082?20161105.Xml&feed_filter=37080.html

http://jy.xiangtan.gov.cn/e/space/?userid=564084?20161105.Xml&feed_filter=63961.html

http://jy.xiangtan.gov.cn/e/space/?userid=564087?20161105.Xml&feed_filter=33971.html

http://jy.xiangtan.gov.cn/e/space/?userid=564088?20161105.Xml&feed_filter=02991.html

http://jy.xiangtan.gov.cn/e/space/?userid=564090?20161105.Xml&feed_filter=91613.html

http://jy.xiangtan.gov.cn/e/space/?userid=564092?20161105.Xml&feed_filter=78244.html

http://jy.xiangtan.gov.cn/e/space/?userid=564094?20161105.Xml&feed_filter=27549.html

http://jy.xiangtan.gov.cn/e/space/?userid=564096?20161105.Xml&feed_filter=07198.html

http://jy.xiangtan.gov.cn/e/space/?userid=564100?20161105.Xml&feed_filter=93299.html

http://jy.xiangtan.gov.cn/e/space/?userid=564101?20161105.Xml&feed_filter=18937.html

http://jy.xiangtan.gov.cn/e/space/?userid=564106?20161105.Xml&feed_filter=19613.html

http://jy.xiangtan.gov.cn/e/space/?userid=564108?20161105.Xml&feed_filter=34835.html

http://jy.xiangtan.gov.cn/e/space/?userid=564112?20161105.Xml&feed_filter=71170.html

http://jy.xiangtan.gov.cn/e/space/?userid=564114?20161105.Xml&feed_filter=66861.html

http://jy.xiangtan.gov.cn/e/space/?userid=564115?20161105.Xml&feed_filter=96471.html

http://jy.xiangtan.gov.cn/e/space/?userid=564118?20161105.Xml&feed_filter=58878.html

http://jy.xiangtan.gov.cn/e/space/?userid=564120?20161105.Xml&feed_filter=41523.html

http://jy.xiangtan.gov.cn/e/space/?userid=564121?20161105.Xml&feed_filter=40319.html

http://jy.xiangtan.gov.cn/e/space/?userid=564124?20161105.Xml&feed_filter=64002.html

http://jy.xiangtan.gov.cn/e/space/?userid=564127?20161105.Xml&feed_filter=77470.html

http://jy.xiangtan.gov.cn/e/space/?userid=564129?20161105.Xml&feed_filter=82240.html

http://jy.xiangtan.gov.cn/e/space/?userid=564130?20161105.Xml&feed_filter=07974.html

http://jy.xiangtan.gov.cn/e/space/?userid=564132?20161105.Xml&feed_filter=15539.html

http://jy.xiangtan.gov.cn/e/space/?userid=564135?20161105.Xml&feed_filter=98642.html

http://jy.xiangtan.gov.cn/e/space/?userid=564138?20161105.Xml&feed_filter=50246.html

http://jy.xiangtan.gov.cn/e/space/?userid=564140?20161105.Xml&feed_filter=05599.html

http://jy.xiangtan.gov.cn/e/space/?userid=564142?20161105.Xml&feed_filter=65502.html

http://jy.xiangtan.gov.cn/e/space/?userid=564145?20161105.Xml&feed_filter=14947.html

http://jy.xiangtan.gov.cn/e/space/?userid=564147?20161105.Xml&feed_filter=08416.html

http://jy.xiangtan.gov.cn/e/space/?userid=564149?20161105.Xml&feed_filter=61782.html

http://jy.xiangtan.gov.cn/e/space/?userid=564150?20161105.Xml&feed_filter=15761.html

http://jy.xiangtan.gov.cn/e/space/?userid=564153?20161105.Xml&feed_filter=20189.html

http://jy.xiangtan.gov.cn/e/space/?userid=564157?20161105.Xml&feed_filter=67996.html

http://jy.xiangtan.gov.cn/e/space/?userid=564161?20161105.Xml&feed_filter=43301.html

http://jy.xiangtan.gov.cn/e/space/?userid=564163?20161105.Xml&feed_filter=29491.html

http://jy.xiangtan.gov.cn/e/space/?userid=564165?20161105.Xml&feed_filter=27450.html

http://jy.xiangtan.gov.cn/e/space/?userid=564166?20161105.Xml&feed_filter=32444.html

http://jy.xiangtan.gov.cn/e/space/?userid=564168?20161105.Xml&feed_filter=02274.html

http://jy.xiangtan.gov.cn/e/space/?userid=564170?20161105.Xml&feed_filter=40486.html

http://jy.xiangtan.gov.cn/e/space/?userid=564171?20161105.Xml&feed_filter=47191.html

http://jy.xiangtan.gov.cn/e/space/?userid=564172?20161105.Xml&feed_filter=20150.html

http://jy.xiangtan.gov.cn/e/space/?userid=564174?20161105.Xml&feed_filter=99298.html

http://jy.xiangtan.gov.cn/e/space/?userid=564175?20161105.Xml&feed_filter=97198.html

http://jy.xiangtan.gov.cn/e/space/?userid=564177?20161105.Xml&feed_filter=91774.html

http://jy.xiangtan.gov.cn/e/space/?userid=564179?20161105.Xml&feed_filter=20195.html

http://jy.xiangtan.gov.cn/e/space/?userid=564181?20161105.Xml&feed_filter=29324.html

http://jy.xiangtan.gov.cn/e/space/?userid=564183?20161105.Xml&feed_filter=34955.html

http://jy.xiangtan.gov.cn/e/space/?userid=564184?20161105.Xml&feed_filter=17872.html

http://jy.xiangtan.gov.cn/e/space/?userid=564185?20161105.Xml&feed_filter=53530.html

http://jy.xiangtan.gov.cn/e/space/?userid=564186?20161105.Xml&feed_filter=78423.html

http://jy.xiangtan.gov.cn/e/space/?userid=564187?20161105.Xml&feed_filter=53327.html

http://jy.xiangtan.gov.cn/e/space/?userid=564189?20161105.Xml&feed_filter=29397.html

http://jy.xiangtan.gov.cn/e/space/?userid=564190?20161105.Xml&feed_filter=43731.html

http://jy.xiangtan.gov.cn/e/space/?userid=564191?20161105.Xml&feed_filter=17393.html

http://jy.xiangtan.gov.cn/e/space/?userid=564192?20161105.Xml&feed_filter=30940.html

http://jy.xiangtan.gov.cn/e/space/?userid=564194?20161105.Xml&feed_filter=87485.html

http://jy.xiangtan.gov.cn/e/space/?userid=564195?20161105.Xml&feed_filter=93758.html

http://jy.xiangtan.gov.cn/e/space/?userid=564197?20161105.Xml&feed_filter=71148.html

http://jy.xiangtan.gov.cn/e/space/?userid=564198?20161105.Xml&feed_filter=92258.html

http://jy.xiangtan.gov.cn/e/space/?userid=564200?20161105.Xml&feed_filter=59607.html

http://jy.xiangtan.gov.cn/e/space/?userid=564202?20161105.Xml&feed_filter=82202.html

http://jy.xiangtan.gov.cn/e/space/?userid=564204?20161105.Xml&feed_filter=92205.html

http://jy.xiangtan.gov.cn/e/space/?userid=564205?20161105.Xml&feed_filter=20729.html

http://jy.xiangtan.gov.cn/e/space/?userid=564207?20161105.Xml&feed_filter=23405.html

http://jy.xiangtan.gov.cn/e/space/?userid=564208?20161105.Xml&feed_filter=66110.html

http://jy.xiangtan.gov.cn/e/space/?userid=564210?20161105.Xml&feed_filter=96297.html

http://jy.xiangtan.gov.cn/e/space/?userid=564211?20161105.Xml&feed_filter=22000.html

http://jy.xiangtan.gov.cn/e/space/?userid=564212?20161105.Xml&feed_filter=24454.html

http://jy.xiangtan.gov.cn/e/space/?userid=564213?20161105.Xml&feed_filter=45862.html

http://jy.xiangtan.gov.cn/e/space/?userid=564215?20161105.Xml&feed_filter=41471.html

http://jy.xiangtan.gov.cn/e/space/?userid=564216?20161105.Xml&feed_filter=10024.html

http://jy.xiangtan.gov.cn/e/space/?userid=564217?20161105.Xml&feed_filter=36231.html

http://jy.xiangtan.gov.cn/e/space/?userid=564219?20161105.Xml&feed_filter=38846.html

http://jy.xiangtan.gov.cn/e/space/?userid=564220?20161105.Xml&feed_filter=22581.html

http://jy.xiangtan.gov.cn/e/space/?userid=564222?20161105.Xml&feed_filter=94678.html

http://jy.xiangtan.gov.cn/e/space/?userid=564223?20161105.Xml&feed_filter=31705.html

http://jy.xiangtan.gov.cn/e/space/?userid=564224?20161105.Xml&feed_filter=77191.html

http://jy.xiangtan.gov.cn/e/space/?userid=564230?20161105.Xml&feed_filter=17820.html

http://jy.xiangtan.gov.cn/e/space/?userid=564232?20161105.Xml&feed_filter=52680.html

http://jy.xiangtan.gov.cn/e/space/?userid=564234?20161105.Xml&feed_filter=83199.html

http://jy.xiangtan.gov.cn/e/space/?userid=564236?20161105.Xml&feed_filter=13914.html

http://jy.xiangtan.gov.cn/e/space/?userid=564237?20161105.Xml&feed_filter=08549.html

http://jy.xiangtan.gov.cn/e/space/?userid=564238?20161105.Xml&feed_filter=82927.html

http://jy.xiangtan.gov.cn/e/space/?userid=564239?20161105.Xml&feed_filter=67886.html

http://jy.xiangtan.gov.cn/e/space/?userid=564240?20161105.Xml&feed_filter=72361.html

http://jy.xiangtan.gov.cn/e/space/?userid=564241?20161105.Xml&feed_filter=17402.html

http://jy.xiangtan.gov.cn/e/space/?userid=564243?20161105.Xml&feed_filter=07935.html

http://jy.xiangtan.gov.cn/e/space/?userid=564245?20161105.Xml&feed_filter=14249.html

http://jy.xiangtan.gov.cn/e/space/?userid=564257?20161105.Xml&feed_filter=50414.html

http://jy.xiangtan.gov.cn/e/space/?userid=564260?20161105.Xml&feed_filter=69802.html

http://jy.xiangtan.gov.cn/e/space/?userid=564261?20161105.Xml&feed_filter=01026.html

http://jy.xiangtan.gov.cn/e/space/?userid=564263?20161105.Xml&feed_filter=23317.html

http://jy.xiangtan.gov.cn/e/space/?userid=564264?20161105.Xml&feed_filter=96234.html

http://jy.xiangtan.gov.cn/e/space/?userid=564299?20161105.Xml&feed_filter=04762.html

http://jy.xiangtan.gov.cn/e/space/?userid=564301?20161105.Xml&feed_filter=28951.html

http://jy.xiangtan.gov.cn/e/space/?userid=564303?20161105.Xml&feed_filter=49164.html

http://jy.xiangtan.gov.cn/e/space/?userid=564304?20161105.Xml&feed_filter=65728.html

http://jy.xiangtan.gov.cn/e/space/?userid=564305?20161105.Xml&feed_filter=58542.html

http://jy.xiangtan.gov.cn/e/space/?userid=564306?20161105.Xml&feed_filter=87099.html

http://jy.xiangtan.gov.cn/e/space/?userid=564309?20161105.Xml&feed_filter=99004.html

http://jy.xiangtan.gov.cn/e/space/?userid=564311?20161105.Xml&feed_filter=92790.html

http://jy.xiangtan.gov.cn/e/space/?userid=564313?20161105.Xml&feed_filter=64473.html

http://jy.xiangtan.gov.cn/e/space/?userid=564316?20161105.Xml&feed_filter=62173.html

http://jy.xiangtan.gov.cn/e/space/?userid=564319?20161105.Xml&feed_filter=65882.html

http://jy.xiangtan.gov.cn/e/space/?userid=564321?20161105.Xml&feed_filter=53447.html

http://jy.xiangtan.gov.cn/e/space/?userid=564323?20161105.Xml&feed_filter=54808.html

http://jy.xiangtan.gov.cn/e/space/?userid=564324?20161105.Xml&feed_filter=81093.html

http://jy.xiangtan.gov.cn/e/space/?userid=564326?20161105.Xml&feed_filter=95847.html

http://jy.xiangtan.gov.cn/e/space/?userid=564329?20161105.Xml&feed_filter=03944.html

http://jy.xiangtan.gov.cn/e/space/?userid=564331?20161105.Xml&feed_filter=09516.html

http://jy.xiangtan.gov.cn/e/space/?userid=564335?20161105.Xml&feed_filter=85462.html

http://jy.xiangtan.gov.cn/e/space/?userid=564340?20161105.Xml&feed_filter=90347.html

http://jy.xiangtan.gov.cn/e/space/?userid=564341?20161105.Xml&feed_filter=84143.html

http://jy.xiangtan.gov.cn/e/space/?userid=564344?20161105.Xml&feed_filter=50008.html

http://jy.xiangtan.gov.cn/e/space/?userid=564347?20161105.Xml&feed_filter=77034.html

http://jy.xiangtan.gov.cn/e/space/?userid=564351?20161105.Xml&feed_filter=57703.html

http://jy.xiangtan.gov.cn/e/space/?userid=564354?20161105.Xml&feed_filter=89622.html

http://jy.xiangtan.gov.cn/e/space/?userid=564356?20161105.Xml&feed_filter=19821.html

http://jy.xiangtan.gov.cn/e/space/?userid=564357?20161105.Xml&feed_filter=97444.html

http://jy.xiangtan.gov.cn/e/space/?userid=564360?20161105.Xml&feed_filter=54330.html

http://jy.xiangtan.gov.cn/e/space/?userid=564364?20161105.Xml&feed_filter=15848.html

http://jy.xiangtan.gov.cn/e/space/?userid=564366?20161105.Xml&feed_filter=86300.html

http://jy.xiangtan.gov.cn/e/space/?userid=564368?20161105.Xml&feed_filter=71218.html

http://jy.xiangtan.gov.cn/e/space/?userid=564370?20161105.Xml&feed_filter=73362.html

http://jy.xiangtan.gov.cn/e/space/?userid=564371?20161105.Xml&feed_filter=31362.html

http://jy.xiangtan.gov.cn/e/space/?userid=564373?20161105.Xml&feed_filter=84561.html

http://jy.xiangtan.gov.cn/e/space/?userid=564376?20161105.Xml&feed_filter=80516.html

http://jy.xiangtan.gov.cn/e/space/?userid=564377?20161105.Xml&feed_filter=21135.html

http://jy.xiangtan.gov.cn/e/space/?userid=564380?20161105.Xml&feed_filter=72432.html

http://jy.xiangtan.gov.cn/e/space/?userid=564382?20161105.Xml&feed_filter=24403.html

http://jy.xiangtan.gov.cn/e/space/?userid=564384?20161105.Xml&feed_filter=27696.html

http://jy.xiangtan.gov.cn/e/space/?userid=564389?20161105.Xml&feed_filter=67010.html

http://jy.xiangtan.gov.cn/e/space/?userid=564390?20161105.Xml&feed_filter=15682.html

http://jy.xiangtan.gov.cn/e/space/?userid=564394?20161105.Xml&feed_filter=16310.html

http://jy.xiangtan.gov.cn/e/space/?userid=564396?20161105.Xml&feed_filter=54552.html

http://jy.xiangtan.gov.cn/e/space/?userid=564398?20161105.Xml&feed_filter=01541.html

http://jy.xiangtan.gov.cn/e/space/?userid=564400?20161105.Xml&feed_filter=90509.html

http://jy.xiangtan.gov.cn/e/space/?userid=564402?20161105.Xml&feed_filter=74168.html

http://jy.xiangtan.gov.cn/e/space/?userid=564405?20161105.Xml&feed_filter=66668.html

http://jy.xiangtan.gov.cn/e/space/?userid=564409?20161105.Xml&feed_filter=10964.html

http://jy.xiangtan.gov.cn/e/space/?userid=564413?20161105.Xml&feed_filter=68416.html

http://jy.xiangtan.gov.cn/e/space/?userid=564414?20161105.Xml&feed_filter=99936.html

http://jy.xiangtan.gov.cn/e/space/?userid=564417?20161105.Xml&feed_filter=13845.html

http://jy.xiangtan.gov.cn/e/space/?userid=564419?20161105.Xml&feed_filter=94993.html

http://jy.xiangtan.gov.cn/e/space/?userid=564421?20161105.Xml&feed_filter=50531.html

http://jy.xiangtan.gov.cn/e/space/?userid=564425?20161105.Xml&feed_filter=29781.html

http://jy.xiangtan.gov.cn/e/space/?userid=564427?20161105.Xml&feed_filter=69677.html

http://jy.xiangtan.gov.cn/e/space/?userid=564429?20161105.Xml&feed_filter=03890.html

http://jy.xiangtan.gov.cn/e/space/?userid=564434?20161105.Xml&feed_filter=47281.html

http://jy.xiangtan.gov.cn/e/space/?userid=564437?20161105.Xml&feed_filter=79818.html

http://jy.xiangtan.gov.cn/e/space/?userid=564438?20161105.Xml&feed_filter=70746.html

http://jy.xiangtan.gov.cn/e/space/?userid=564441?20161105.Xml&feed_filter=63539.html

http://jy.xiangtan.gov.cn/e/space/?userid=564443?20161105.Xml&feed_filter=33336.html

http://jy.xiangtan.gov.cn/e/space/?userid=564445?20161105.Xml&feed_filter=82309.html

http://jy.xiangtan.gov.cn/e/space/?userid=564450?20161105.Xml&feed_filter=72910.html

http://jy.xiangtan.gov.cn/e/space/?userid=564452?20161105.Xml&feed_filter=36581.html

http://jy.xiangtan.gov.cn/e/space/?userid=564454?20161105.Xml&feed_filter=07283.html

http://jy.xiangtan.gov.cn/e/space/?userid=564456?20161105.Xml&feed_filter=48376.html

http://jy.xiangtan.gov.cn/e/space/?userid=564458?20161105.Xml&feed_filter=11214.html

http://jy.xiangtan.gov.cn/e/space/?userid=564460?20161105.Xml&feed_filter=03244.html

http://jy.xiangtan.gov.cn/e/space/?userid=564462?20161105.Xml&feed_filter=97422.html

http://jy.xiangtan.gov.cn/e/space/?userid=564464?20161105.Xml&feed_filter=51034.html

http://jy.xiangtan.gov.cn/e/space/?userid=564465?20161105.Xml&feed_filter=74096.html

http://jy.xiangtan.gov.cn/e/space/?userid=564467?20161105.Xml&feed_filter=24655.html

http://jy.xiangtan.gov.cn/e/space/?userid=564469?20161105.Xml&feed_filter=68035.html

http://jy.xiangtan.gov.cn/e/space/?userid=564471?20161105.Xml&feed_filter=33822.html

http://jy.xiangtan.gov.cn/e/space/?userid=564473?20161105.Xml&feed_filter=57824.html

http://jy.xiangtan.gov.cn/e/space/?userid=564476?20161105.Xml&feed_filter=29026.html

http://jy.xiangtan.gov.cn/e/space/?userid=564478?20161105.Xml&feed_filter=44003.html

http://jy.xiangtan.gov.cn/e/space/?userid=564480?20161105.Xml&feed_filter=91386.html

http://jy.xiangtan.gov.cn/e/space/?userid=564482?20161105.Xml&feed_filter=00221.html

http://jy.xiangtan.gov.cn/e/space/?userid=564484?20161105.Xml&feed_filter=38103.html

http://jy.xiangtan.gov.cn/e/space/?userid=564486?20161105.Xml&feed_filter=84156.html

http://jy.xiangtan.gov.cn/e/space/?userid=564489?20161105.Xml&feed_filter=28386.html

http://jy.xiangtan.gov.cn/e/space/?userid=564491?20161105.Xml&feed_filter=92790.html

http://jy.xiangtan.gov.cn/e/space/?userid=564493?20161105.Xml&feed_filter=91532.html

http://jy.xiangtan.gov.cn/e/space/?userid=564495?20161105.Xml&feed_filter=41946.html

http://jy.xiangtan.gov.cn/e/space/?userid=564497?20161105.Xml&feed_filter=64829.html

http://jy.xiangtan.gov.cn/e/space/?userid=564499?20161105.Xml&feed_filter=80445.html

http://jy.xiangtan.gov.cn/e/space/?userid=564501?20161105.Xml&feed_filter=26010.html

http://jy.xiangtan.gov.cn/e/space/?userid=564504?20161105.Xml&feed_filter=61217.html

http://jy.xiangtan.gov.cn/e/space/?userid=564505?20161105.Xml&feed_filter=07560.html

http://jy.xiangtan.gov.cn/e/space/?userid=564506?20161105.Xml&feed_filter=73341.html

http://jy.xiangtan.gov.cn/e/space/?userid=564507?20161105.Xml&feed_filter=72916.html

http://jy.xiangtan.gov.cn/e/space/?userid=564508?20161105.Xml&feed_filter=72925.html

http://jy.xiangtan.gov.cn/e/space/?userid=564510?20161105.Xml&feed_filter=42469.html

http://jy.xiangtan.gov.cn/e/space/?userid=564512?20161105.Xml&feed_filter=30659.html

http://jy.xiangtan.gov.cn/e/space/?userid=564515?20161105.Xml&feed_filter=61161.html

http://jy.xiangtan.gov.cn/e/space/?userid=564516?20161105.Xml&feed_filter=58796.html

http://jy.xiangtan.gov.cn/e/space/?userid=564518?20161105.Xml&feed_filter=26665.html

http://jy.xiangtan.gov.cn/e/space/?userid=564520?20161105.Xml&feed_filter=30035.html

http://jy.xiangtan.gov.cn/e/space/?userid=564522?20161105.Xml&feed_filter=61067.html

http://jy.xiangtan.gov.cn/e/space/?userid=564524?20161105.Xml&feed_filter=26379.html

http://jy.xiangtan.gov.cn/e/space/?userid=564526?20161105.Xml&feed_filter=17368.html

http://jy.xiangtan.gov.cn/e/space/?userid=564528?20161105.Xml&feed_filter=18513.html

http://jy.xiangtan.gov.cn/e/space/?userid=564529?20161105.Xml&feed_filter=33480.html

http://jy.xiangtan.gov.cn/e/space/?userid=564531?20161105.Xml&feed_filter=43247.html

http://jy.xiangtan.gov.cn/e/space/?userid=564534?20161105.Xml&feed_filter=85156.html

http://jy.xiangtan.gov.cn/e/space/?userid=564540?20161105.Xml&feed_filter=86475.html

http://jy.xiangtan.gov.cn/e/space/?userid=564545?20161105.Xml&feed_filter=96643.html

http://jy.xiangtan.gov.cn/e/space/?userid=564548?20161105.Xml&feed_filter=51518.html

http://jy.xiangtan.gov.cn/e/space/?userid=564550?20161105.Xml&feed_filter=71338.html

http://jy.xiangtan.gov.cn/e/space/?userid=564551?20161105.Xml&feed_filter=09256.html

http://jy.xiangtan.gov.cn/e/space/?userid=564556?20161105.Xml&feed_filter=48764.html

http://jy.xiangtan.gov.cn/e/space/?userid=564557?20161105.Xml&feed_filter=11726.html

http://jy.xiangtan.gov.cn/e/space/?userid=564563?20161105.Xml&feed_filter=27297.html

http://jy.xiangtan.gov.cn/e/space/?userid=564564?20161105.Xml&feed_filter=39219.html

http://jy.xiangtan.gov.cn/e/space/?userid=564567?20161105.Xml&feed_filter=02778.html

http://jy.xiangtan.gov.cn/e/space/?userid=564569?20161105.Xml&feed_filter=54672.html

http://jy.xiangtan.gov.cn/e/space/?userid=564573?20161105.Xml&feed_filter=47327.html

http://jy.xiangtan.gov.cn/e/space/?userid=564576?20161105.Xml&feed_filter=11586.html

http://jy.xiangtan.gov.cn/e/space/?userid=564580?20161105.Xml&feed_filter=64639.html

http://jy.xiangtan.gov.cn/e/space/?userid=564583?20161105.Xml&feed_filter=96272.html

http://jy.xiangtan.gov.cn/e/space/?userid=564586?20161105.Xml&feed_filter=55286.html

http://jy.xiangtan.gov.cn/e/space/?userid=564588?20161105.Xml&feed_filter=26630.html

http://jy.xiangtan.gov.cn/e/space/?userid=564590?20161105.Xml&feed_filter=58751.html

http://jy.xiangtan.gov.cn/e/space/?userid=564593?20161105.Xml&feed_filter=83827.html

http://jy.xiangtan.gov.cn/e/space/?userid=564595?20161105.Xml&feed_filter=92601.html

http://jy.xiangtan.gov.cn/e/space/?userid=564598?20161105.Xml&feed_filter=92994.html

http://jy.xiangtan.gov.cn/e/space/?userid=564600?20161105.Xml&feed_filter=32804.html

http://jy.xiangtan.gov.cn/e/space/?userid=564606?20161105.Xml&feed_filter=21545.html

http://jy.xiangtan.gov.cn/e/space/?userid=564610?20161105.Xml&feed_filter=11456.html

http://jy.xiangtan.gov.cn/e/space/?userid=564612?20161105.Xml&feed_filter=99144.html

http://jy.xiangtan.gov.cn/e/space/?userid=564616?20161105.Xml&feed_filter=91839.html

http://jy.xiangtan.gov.cn/e/space/?userid=564621?20161105.Xml&feed_filter=53267.html

http://jy.xiangtan.gov.cn/e/space/?userid=564628?20161105.Xml&feed_filter=64630.html

http://jy.xiangtan.gov.cn/e/space/?userid=564629?20161105.Xml&feed_filter=65162.html

http://jy.xiangtan.gov.cn/e/space/?userid=564631?20161105.Xml&feed_filter=72889.html

http://jy.xiangtan.gov.cn/e/space/?userid=564633?20161105.Xml&feed_filter=03342.html

http://jy.xiangtan.gov.cn/e/space/?userid=564635?20161105.Xml&feed_filter=36228.html

http://jy.xiangtan.gov.cn/e/space/?userid=564637?20161105.Xml&feed_filter=51348.html

http://jy.xiangtan.gov.cn/e/space/?userid=564639?20161105.Xml&feed_filter=04704.html

http://jy.xiangtan.gov.cn/e/space/?userid=564642?20161105.Xml&feed_filter=11310.html

http://jy.xiangtan.gov.cn/e/space/?userid=564644?20161105.Xml&feed_filter=57277.html

http://jy.xiangtan.gov.cn/e/space/?userid=564646?20161105.Xml&feed_filter=05589.html

http://jy.xiangtan.gov.cn/e/space/?userid=564647?20161105.Xml&feed_filter=93493.html

http://jy.xiangtan.gov.cn/e/space/?userid=564649?20161105.Xml&feed_filter=58726.html

http://jy.xiangtan.gov.cn/e/space/?userid=564650?20161105.Xml&feed_filter=65056.html

http://jy.xiangtan.gov.cn/e/space/?userid=564651?20161105.Xml&feed_filter=56400.html

http://jy.xiangtan.gov.cn/e/space/?userid=564652?20161105.Xml&feed_filter=10302.html

http://jy.xiangtan.gov.cn/e/space/?userid=564653?20161105.Xml&feed_filter=07556.html

http://jy.xiangtan.gov.cn/e/space/?userid=564654?20161105.Xml&feed_filter=32491.html

http://jy.xiangtan.gov.cn/e/space/?userid=564655?20161105.Xml&feed_filter=19606.html

http://jy.xiangtan.gov.cn/e/space/?userid=564657?20161105.Xml&feed_filter=51901.html

http://jy.xiangtan.gov.cn/e/space/?userid=564658?20161105.Xml&feed_filter=54526.html

http://jy.xiangtan.gov.cn/e/space/?userid=564660?20161105.Xml&feed_filter=71858.html

http://jy.xiangtan.gov.cn/e/space/?userid=564662?20161105.Xml&feed_filter=86215.html

http://jy.xiangtan.gov.cn/e/space/?userid=564664?20161105.Xml&feed_filter=10682.html

http://jy.xiangtan.gov.cn/e/space/?userid=564666?20161105.Xml&feed_filter=73428.html

http://jy.xiangtan.gov.cn/e/space/?userid=564669?20161105.Xml&feed_filter=63594.html

http://jy.xiangtan.gov.cn/e/space/?userid=564671?20161105.Xml&feed_filter=98842.html

http://jy.xiangtan.gov.cn/e/space/?userid=564673?20161105.Xml&feed_filter=57917.html

http://jy.xiangtan.gov.cn/e/space/?userid=564675?20161105.Xml&feed_filter=41401.html

http://jy.xiangtan.gov.cn/e/space/?userid=564678?20161105.Xml&feed_filter=80810.html

http://jy.xiangtan.gov.cn/e/space/?userid=564679?20161105.Xml&feed_filter=29015.html

http://jy.xiangtan.gov.cn/e/space/?userid=564682?20161105.Xml&feed_filter=91063.html

http://jy.xiangtan.gov.cn/e/space/?userid=564685?20161105.Xml&feed_filter=89758.html

http://jy.xiangtan.gov.cn/e/space/?userid=564687?20161105.Xml&feed_filter=13539.html

http://jy.xiangtan.gov.cn/e/space/?userid=564688?20161105.Xml&feed_filter=91826.html

http://jy.xiangtan.gov.cn/e/space/?userid=564691?20161105.Xml&feed_filter=53153.html

http://jy.xiangtan.gov.cn/e/space/?userid=564693?20161105.Xml&feed_filter=53798.html

http://jy.xiangtan.gov.cn/e/space/?userid=564705?20161105.Xml&feed_filter=62281.html

http://jy.xiangtan.gov.cn/e/space/?userid=564707?20161105.Xml&feed_filter=18247.html

http://jy.xiangtan.gov.cn/e/space/?userid=564708?20161105.Xml&feed_filter=50264.html

http://jy.xiangtan.gov.cn/e/space/?userid=564710?20161105.Xml&feed_filter=11232.html

http://jy.xiangtan.gov.cn/e/space/?userid=564712?20161105.Xml&feed_filter=35452.html

http://jy.xiangtan.gov.cn/e/space/?userid=564714?20161105.Xml&feed_filter=60750.html

http://jy.xiangtan.gov.cn/e/space/?userid=564715?20161105.Xml&feed_filter=57481.html

http://jy.xiangtan.gov.cn/e/space/?userid=564717?20161105.Xml&feed_filter=61962.html

http://jy.xiangtan.gov.cn/e/space/?userid=564719?20161105.Xml&feed_filter=86368.html

http://jy.xiangtan.gov.cn/e/space/?userid=564723?20161105.Xml&feed_filter=61496.html

http://jy.xiangtan.gov.cn/e/space/?userid=564724?20161105.Xml&feed_filter=16894.html

http://jy.xiangtan.gov.cn/e/space/?userid=564726?20161105.Xml&feed_filter=75883.html

http://jy.xiangtan.gov.cn/e/space/?userid=564729?20161105.Xml&feed_filter=75173.html

http://jy.xiangtan.gov.cn/e/space/?userid=564730?20161105.Xml&feed_filter=00336.html

http://jy.xiangtan.gov.cn/e/space/?userid=564732?20161105.Xml&feed_filter=01667.html

http://jy.xiangtan.gov.cn/e/space/?userid=564735?20161105.Xml&feed_filter=69350.html

http://jy.xiangtan.gov.cn/e/space/?userid=564737?20161105.Xml&feed_filter=58431.html

http://jy.xiangtan.gov.cn/e/space/?userid=564738?20161105.Xml&feed_filter=54448.html

http://jy.xiangtan.gov.cn/e/space/?userid=564740?20161105.Xml&feed_filter=54549.html

http://jy.xiangtan.gov.cn/e/space/?userid=564743?20161105.Xml&feed_filter=65285.html

http://jy.xiangtan.gov.cn/e/space/?userid=564745?20161105.Xml&feed_filter=53218.html

http://jy.xiangtan.gov.cn/e/space/?userid=564747?20161105.Xml&feed_filter=59686.html

http://jy.xiangtan.gov.cn/e/space/?userid=564750?20161105.Xml&feed_filter=49979.html

http://jy.xiangtan.gov.cn/e/space/?userid=564752?20161105.Xml&feed_filter=99451.html

http://jy.xiangtan.gov.cn/e/space/?userid=564754?20161105.Xml&feed_filter=85317.html

http://jy.xiangtan.gov.cn/e/space/?userid=564757?20161105.Xml&feed_filter=41929.html

http://jy.xiangtan.gov.cn/e/space/?userid=564760?20161105.Xml&feed_filter=08851.html

http://jy.xiangtan.gov.cn/e/space/?userid=564762?20161105.Xml&feed_filter=54261.html

http://jy.xiangtan.gov.cn/e/space/?userid=564764?20161105.Xml&feed_filter=87655.html

http://jy.xiangtan.gov.cn/e/space/?userid=564768?20161105.Xml&feed_filter=77222.html

http://jy.xiangtan.gov.cn/e/space/?userid=564771?20161105.Xml&feed_filter=16306.html

http://jy.xiangtan.gov.cn/e/space/?userid=564774?20161105.Xml&feed_filter=06899.html

http://jy.xiangtan.gov.cn/e/space/?userid=564775?20161105.Xml&feed_filter=77542.html

http://jy.xiangtan.gov.cn/e/space/?userid=564777?20161105.Xml&feed_filter=96441.html

http://jy.xiangtan.gov.cn/e/space/?userid=564780?20161105.Xml&feed_filter=31316.html

时间: 2024-08-25 19:32:58

结合WebSocket编写WebGL综合场景示例的相关文章

smartjs - DataManager 场景示例分析 - 数据懒加载

发一张policy的参数图设置图: 场景1 - 数据的懒加载/延迟加载 在很多时候,为了提高网页的加载速度,减少不必要的开销,会将页面的数据拆分成几个部分,首先加载呈现可视区域内的数据,然后剩下来的会在需要的时候在进行加载. 而这种按需加载的数据又分为两种: 1.按照需要进行加载:可以是由某个动作触发来引起,比如:tab,查看更多等: 2.采用缓存的方式:对后续动作的预知,提前将后续的数据加载进来,放入到缓存中:等需要的时候能提供快速的响应:比如:很多igrid的滚动分页 那么来看一下在data

WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程(转)

本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程 WebRTC VideoEngine综合应用示例(二)——集成OPENH264编解码器 WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码 WebRTC技术的出现改变了传统即时通信的现状,它是一套开源的旨在建立浏览器端对端的通信标准的技术,支持浏览器平台,使用P2P架构.WebRTC所采用的技术都是当前VoIP先进的技术,如内部所采用的音频引

PIE SDK组件式开发综合运用示例

1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发进行详细的讲解. 2. 功能实现 2.1.界面搭建 最终的界面如下图所示: 图1最终结果图 2.1.1 新建项目 选择“Window窗体应用程序”,设置程序的名称和保存路径即可.(新建完成后可以将程序的窗体名称右键重命名为“FormMain”,,将窗体界面的属性的Text设置名称为“PIE应用程序”

【Jmeter】配置不同业务请求比例,应对综合场景压测

背景 在进行综合场景压测时,遇到了如何实现不同的请求所占比例不同的问题. 有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置. 这种方法不是很好,因为服务器对不同的请求处理能力不同,有的处理快,有的处理慢.若采取上述方案的话,并不会按照我们预期的比例进行并发. 那么如何真实模拟按比例进行并发呢?此前使用LR进行过类似场景的测试时的思路如下: 每次向服务器发出请求时,先生成一个随机数,我们对随机数的取值划分若干个范围(对应若干个业务请求),然后对随机数进行判断,当随机数落

Websocket原理及使用场景[转载]

WebSocket的使用场景 社交聊天.弹幕.多玩家游戏.协同编辑.股票基金实时报价.体育实况更新.视频会议/聊天.基于位置的应用.在线教育.智能家居等需要高实时的场景 由轮询到WebSocket 1 轮询 客户端和服务器之间会一直进行连接,每隔一段时间就询问一次.客户端会轮询,有没有新消息.这种方式连接数会很多,一个接受,一个发送.而且每次发送请求都会有Http的Header,会很耗流量,也会消耗CPU的利用率. 2 长轮询 长轮询是对轮询的改进版,客户端发送HTTP给服务器之后,有没有新消息

基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)

今天没有延续上一篇讲的内容,穿插一段小插曲,WebSocket 实时数据通讯同步的问题,今天我们并不是很纯粹地讲 WebSocket 相关知识,我们通过 WebGL 3D 拓扑图来呈现一个有趣的 Demo.接下来我们就看看这个实时数据通讯是一个什么样的套路. 我们先来聊聊这次 Demo 的思路吧,首先我要有一个 3D 的拓扑图组件,在上面创建几个节点,然后通过拉力布局(ForceLayout)将这些节点自动布局,但是有一定,需要在不同的网页窗口下,对应节点的位置是一样的,简单地说就是不同网页窗口

PWN 菜鸡入门之 shellcode编写 及exploid-db用法示例

一.shellcode编写 下面我将参考其他资料来一步步示范shellcode的几种编写方式 0x01 系统调用 通过系统调用execve函数返回shell C语言实现: #include<unistd.h> #include<stdlib.h> char *buf [] = {"/bin/sh",NULL}; void main { execve("/bin/sh",buf,0); exit(0); }   execve函数在父进程中for

脱离Tomcat环境下使用WebSocket即时通讯聊天的示例

A 代码生成器(开发利器);     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安

iOS 多线程NSThread理解与场景示例

NSThread是相对GCD和NSOperationQuene而言,比较轻量级的一种多线程处理方式. 但同时,它的弊端就是需要自己管理线程的生命周期,以及线程同步:而另外两种不需要自己管理. 常见方法介绍: 一.获取当前线程 NSThread *current = [NSThread currentThread]; 二.获取主线程 NSThread *main = [NSThread mainThread]; 三.NSThread的创建 1 // 初始化线程 2 NSThread *thread