Javascript 每台计算机的唯一闪存ID
我用AdobeFlashProfessional创建了一个在线多人纸牌游戏。在这个游戏中,不允许多个客户端/帐户,因此我需要检测用户是否从不同的设备加入游戏。我不能简单地在服务器端检查IP地址,因为我仍然希望同一办公室的人能够一起玩 我找到了一些解决方案,比如读取MAC地址,但问题是NetworkInfo.NetworkInfo.findInterfaces只能在AdobeAIR上工作,这不是我的情况 另一种解决方案可能是使用浏览器cookie,但这种解决方案的问题是,用户可以在同一台计算机上使用Chrome和Firefox等浏览器cookie 由于这是一个网络游戏,使用js也可能是一个解决方案,所以我将这个问题标记为js 更新Javascript 每台计算机的唯一闪存ID,javascript,actionscript-3,flash,facebook-apps,hardware-id,Javascript,Actionscript 3,Flash,Facebook Apps,Hardware Id,我用AdobeFlashProfessional创建了一个在线多人纸牌游戏。在这个游戏中,不允许多个客户端/帐户,因此我需要检测用户是否从不同的设备加入游戏。我不能简单地在服务器端检查IP地址,因为我仍然希望同一办公室的人能够一起玩 我找到了一些解决方案,比如读取MAC地址,但问题是NetworkInfo.NetworkInfo.findInterfaces只能在AdobeAIR上工作,这不是我的情况 另一种解决方案可能是使用浏览器cookie,但这种解决方案的问题是,用户可以在同一台计算机上使
在这种情况下,使用SharedObject不起作用,因为google chrome使用自己的存储
如果您有任何建议,我们将不胜感激。您可以使用flash Cookie来代替浏览器Cookie-。它非常简单,具有类似于浏览器cookie的机制,但存储在flash本地存储中 更新 例如:
var mySo:SharedObject = SharedObject.getLocal("host"); // get saved SO with name "host" if exists or create new if doesn't exist
mySo.data = {someProperty: "someData"}; // writing some data
var flushResult:Object = mySo.flush(); // saving data in local storage
...
var savedSO:SharedObject = SharedObject.getLocal("host");
trace(savedSO.data.someProperty); // output: someData
下面是一个使用SharedObject flash player cookie等价物的示例:在这种情况下,使用SharedObject不起作用,因为google chrome使用自己的存储。使用openId/OAUTH,然后使用google/facebook/twitter按钮登录,然后将提供商id存储在数据库中,作为跟踪用户的手段。实际上,这是一个facebook应用,但问题是,客户端可以创建多个Facebook帐户,这就是我们想要防止作弊的原因。没有可靠的方法使用web技术跟踪设备。主要是通过设计例如MAC地址。即使使用Chrome和metro IE,Flash共享对象仍然可能是您的最佳选择。谢谢您的回答,但我担心Flash本地存储与Google Chrome不同。您可以在此链接上看到示例:republicocfcode.com/tutorials/flash/as3sharedobject尝试在chrome中移动对象,并使用其他浏览器重新加载页面。