当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 请教:多个终端与一个php页面通信,怎么存储这些终端的数据?
帖子发表于 : 2016-11-30 17:37 
头像

注册: 2007-11-25 13:29
帖子: 7277
地址: 新疆博乐
系统: 14.04/16.04/Fedroa22
送出感谢: 38
接收感谢: 101
(最近机房在改造上不了课,有时间构思下,Flash指法练习的网络打字比赛)

设想是每个学生机每隔1秒钟将自己的姓名、打字的个数信息发送到同一个php页面,
然后从php页面接收其他学生机发送到这个php页面上的信息,接收来的信息显示在舞台上,从而可以看到其他人的打字进度

碰到的问题是:假如有多个学生同时进行(人数不确定),php里怎么生成多个变量存放这些学生传来的信息,另一个学生访问php页面的时候,能够获得其他人的信息?


_________________
===新手请看===
Ubuntu 安装 | Ubuntu12.04/14.04/16.04 桌面操作指南
··Ubuntu16.04 安装图文教程(超简单)
····有时间就静下心来——折腾:)


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 请教:多个终端与一个php页面通信,怎么存储这些终端的数据?
帖子发表于 : 2016-12-02 9:18 
头像

注册: 2007-11-25 13:29
帖子: 7277
地址: 新疆博乐
系统: 14.04/16.04/Fedroa22
送出感谢: 38
接收感谢: 101
--
想着用socket,php服务端不会写,貌似要单独运行命令,我想在lampp的discuz里用
数组似乎也挺好,as3怎么接收php的数组?
--
php用特殊字符当分隔符把几个参数合并到一个变量,然后传回as3再切开
怎么固定标识各个学生,每次学生数据存放到固定变量,php session可以存放变量
--
学生在as里点“比赛”时传给php一个自己的什么来标记自己,用dz的uid只能在dz里用
可用的唯一uid,机号,mac,IP,用swich来区分各个学生传来的数据


_________________
===新手请看===
Ubuntu 安装 | Ubuntu12.04/14.04/16.04 桌面操作指南
··Ubuntu16.04 安装图文教程(超简单)
····有时间就静下心来——折腾:)


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 请教:多个终端与一个php页面通信,怎么存储这些终端的数据?
帖子发表于 : 2016-12-03 22:25 
头像

注册: 2007-11-25 13:29
帖子: 7277
地址: 新疆博乐
系统: 14.04/16.04/Fedroa22
送出感谢: 38
接收感谢: 101
本机发送一个用户测试通过,效率有点问题,
没有用数组,而是将数据串在一起发送和接收,多个用户的多个数据切割还没找出方法
--
代码:
var php_array:Array; //数组,存放从php接收来数据,被分割的小段文本

var uid:int  =2;//dzx里的uid
var myname:String ="teliute";//dzx里的用户名
var myline:int =1;//打到第几行,初始化第一行

//为复制新标志元件做准备
var mcBoard:Sprite = new Sprite();//放置按钮的容器
addChild(mcBoard);//容器放入舞台

var mycur_1:mycur1 = new mycur1();//mycur是库里影片剪辑mycur的链接名称(类名)
mcBoard.addChild(mycur_1);//生成库中的剪辑,并放入容器

var rect:Rectangle;

stage.focus = in_txt;

in_txt.addEventListener(KeyboardEvent.KEY_UP,onChanged);

function onChanged(e:Event):void//将标志放在光标左边字符的上边
{
    rect = in_txt.getCharBoundaries(in_txt.caretIndex - 1)
    //rect测出当前光标所在字符的位置
    if (rect==null) return;//如果文本框为空了就跳出函数

    var postLoader:URLLoader=new URLLoader();
    var request:URLRequest=new URLRequest();
    var vars:URLVariables=new URLVariables();
   
    vars.s1=String(uid)+"|"+myname+"|"+String(myline)+"|"+String(rect.x);
    request.url="http://192.168.0.102/cur2.php";
    request.method=URLRequestMethod.POST;
    request.data=vars;//这里的data可以是一个Object,或者Array
      
    postLoader.load(request);//下一行监听发送是否完成
    postLoader.addEventListener(Event.COMPLETE,completeFun);
}


function completeFun(e:Event):void//发送完成后,接收数据
{
   var mssLoader:URLLoader=new URLLoader();
   mssLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
   mssLoader.load(new URLRequest("http://192.168.0.102/cur2.php"));

   //这里就是php文件的地址;下一行监听是否接收完成
   mssLoader.addEventListener(Event.COMPLETE,completeRecv);//接收完成
}

function completeRecv(e:Event):void
{//接收php返回的信息。。
   var loadData:URLVariables=URLVariables((e.currentTarget as URLLoader).data);
   php_array = loadData.content1.split("|"); //把字符串分割成行,每一行一个数组元素字符串,

   mycur_1.x = Number(php_array[3]);//左上角是0,0坐标
   mycur_1.y = in_txt.y - in_txt.textHeight;

   mycur_1.curname.text=php_array[1];//元件里面的姓名文本框,显示姓名
   mycur_1.cur_txt.textColor=0xffffff * Math.random();
   mycur_1.curname.textColor=mycur_1.cur_txt.textColor;
}


cur2.php
代码:
<?php
$content1 = $_POST["s1"];//."?"; //获取flash传递过来的参数,问号先不加,就传一个人的过去
$state1="ok";

//用一个占位符保证回传的格式
$returnstr="send=ok";

//用占位符保证回传尾部没有冗余
$returnstr.="&content1=".$content1."&state1=".$state1;
echo $returnstr;
?>


_________________
===新手请看===
Ubuntu 安装 | Ubuntu12.04/14.04/16.04 桌面操作指南
··Ubuntu16.04 安装图文教程(超简单)
····有时间就静下心来——折腾:)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译