科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件[冷枫]FCS编程之共享对象概念

[冷枫]FCS编程之共享对象概念

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

FCS编程之共享对象概念

作者:冷枫 来源:CSDN 2007年9月23日

关键字: 软件

  • 评论
  • 分享微博
  • 分享邮件
在使用远程共享对象之前,请确认SharedObject.connect 返回 true,在客户端调用SharedObject.flush 方法只是在本地拷贝了一份,要确保服务器端的拷贝,必须在服务器端使用SharedObject.flush 方法,如:
     
  1. // Sample server-side code for flushing a persistent shared object
     
    application.onAppStart = function()
     
    application.mySO SharedObject.get('SharedObjName'true);
     
    // When a user disconnects, flush the shared object.
     
    application.onDisconnect = function(client)
    application.mySO.flush();
  2. // to the server
     
  3. // Get the shared object when the application is loaded.
     

  4.  
  5.  }
     

  6.  }

如果在同一时间有多个客户端或者服务器端在同步远程共享对象的话,就会出现问题,要解决这个冲突可以通过下面的方法。
1. 使用不同的位置存储不同用户的信息
  这是最简单的一种方法,例如,在聊天室给每个用户不同的位置存放数据,同步只修改自己的数据部分。
2. 分配资料所有者
  复杂一点的方法就是定义一个用户为有限的时间内该数据资料的所有者,所有者可以锁定服务器端的共享对象,直到返回可用信息后方可同步另外的数据。下面是示例代码:
通过一个记录游戏最高分的应用程序来说明解决同步冲突的问题,当前系统保存的最高分是95,同时有两个用户打破了这个记录,成绩分别为105和110,如果不锁定最高分的话,两个成绩都会同时执行updateHighScore方法,有可能其中一个成绩会无法记录下来。使用锁定共享对象的方法解决了这样一个问题。
     
  1. application.onAppStart = function()
     
    application.scoreSO SharedObject.get('high_score_so'true);
     
    application.scoreSO.onSync = function(listVal)
     
    trace('got an onSync on scoreSO');
     
    application.onConnect = function(newClient,name,passwd)
    newClient.updateHighScore = function(final_score)
    application.scoreSO.lock();
    application.scoreSO.getProperty('high_score_so') < final_score)
    application.scoreSO.setProperty('high_score_so'final_score);
    application.scoreSO.unlock();

  2.  

  3.  
  4.  }
     
  5.  }
     


  6. if (

  7.  }
  8.  }
  9.  }

3. 通知客户端
 当服务器端收到客户端的同步请求的时候,SharedObject.onSync事件会通知用户端更改被拒绝,然后提供一个用户界面来给用户解决这种冲突。这种技术通常用于客户端不是经常更新的情况。
4. 接受某些,拒绝其它的
 应用程序根据“先到先服务”的原则来解决同步的冲突问题。通常需要于客户自己重新请求来解决冲突。
5. 通过send方法来提高控制级别
 SharedObject.send 命令给所有连接到该远程共享对象的客户端广播消息,也包括发送者本人。 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=857036

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章