Nginx+Luajit服务器全校验遇到的问题

原创 2016年06月02日 12:29:25
战斗代码为服务器和客户端共有,共享一份代码,client每次打开,检查并在服务器下载最新的代码,保持代码的一致
服务器:nginx + lua

客户端:cocos2dx +lua[luajit]

  • 随机种子不统一
解决:client统一种子和随机函数,种子的来源来自服务器
  • for k,v in pairs(table) do …. end 遍历顺序不一致
pairs是无序列访问table, 如果table是数组,#table合法,则尽量使用ipair代替,如果无法替代,重写pairs,先对table进行排序
function P.pairsByKeys(t)
	local a = {}
	for n in pairs(t) do
		a[#a+1] = n
	end
	table.sort(a)
	local i = 0
	return function()
		i = i + 1
		return a[i], t[a[i]]
	end
end


  • 浮点类型的比较差异
浮点值在不同机型的保存值有微小差异,不同时段也有差异,比如1/3,在A时刻值为0.3333333334,在B时刻是0.333333333;所以在比较两个浮点值大小的时候,必须使用误差去衡量,在使用 >, <, >=, <=, ==,要注意,
将所有涉及到这些符号并非==的表达式改为: A - B > 误差[例如0.01] ,== 改为 A -B < 误差
即 
A > B ——>  A - B > 0.01
A < B ——>  B - A > 0.01
A >= B  —> A - B > 0.01
A <= B  —> B -A > 0.01
A == B  —> A - B < 0.01


  • lua自身的缺陷和限制
lua自身有自身的限制,栈溢出,字符串长度限制;如果一旦出问题,会导致当前lua线程提前结束,直到一下次,所以尽量避免太大的字符串,避免运行时生成大量的临时栈变量等。

版权声明:本文为博主原创文章,未经博主允许不得转载。

luajava中使用luajit提升性能

最近着力开发一款手游,前端基于cocos2d-x引擎,使用lua脚本方案,后端用java,有一个需求是服务器要能自动计算玩家战斗结果,幸好使用了lua,该语言就是这么强大,服务器直接复用前端代码,精确...
  • u012940116
  • u012940116
  • 2013年11月27日 13:40
  • 4033

用Nginx+Lua实现高性能、高可靠、安全的登陆验证

对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能。在这种情况下用户登陆后的身份验证就会是一个问题。一种简单的解决办法就...
  • langeldep
  • langeldep
  • 2013年03月02日 21:52
  • 23976

用Nginx+Lua实现高性能、高可靠、安全的登陆验证

对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能。在这种情况下用户登陆后的身份验证就会是一个问题。一种简单的解决办法就...
  • langeldep
  • langeldep
  • 2013年03月02日 21:52
  • 23976

Lua和Luajit的优势和不足(1)

一、什么是lua&luaJit lua(www.lua.org)其实就是为了嵌入其它应用程序而开发的一个脚本语言,luajit(www.luajit.org)是lua的一个Just-In-Time也...
  • ugly_man_
  • ugly_man_
  • 2015年09月19日 18:05
  • 8338

Nginx安装ssl模块和nginx_lua模块

声明,为了简单介绍,所有命令默认root权限在Centos环境下,生成证书前先要确保安装openSSL和openSSL-devel模块yum install openssl yum install o...
  • IsResultXaL
  • IsResultXaL
  • 2016年09月01日 11:50
  • 980

nginx lua实现高效游戏服务器

工作需要实现基于http协议的Game server。我准备用前端NginX和Lua后端用TOmcat/java 实现。基本实现思路如下。 先说一下我们目前的做法是: Nginx和php。Redis ...
  • laughing_zhong
  • laughing_zhong
  • 2013年12月13日 10:18
  • 2751

关于luasocket的编译和部署

lua语言是一门轻量级、可扩展、使用方便的脚本语言,近年来在很多领域得到了广泛的使用,特别是在游戏领域,很多服务器和客户端引擎都选择使用lua来做扩展。同时lua自出生以来受到很多开发者的青睐,并为之...
  • ycg514230
  • ycg514230
  • 2015年03月16日 14:39
  • 3351

用好Lua+Unity,让性能飞起来—LuaJIT性能坑详解

大家都知道LuaJIT比原生Lua快,快在JIT这三个字上。但实际情况是,LuaJIT的行为十分复杂。尤其JIT并不是一个简单的把代码翻译成机器码的机制,背后有很多会影响性能的因素存在,下面笔者将带大...
  • UWA4D
  • UWA4D
  • 2017年06月08日 14:24
  • 1317

使用luajit将lua脚本编译成字节码

1、下载luajit 传送门:http://luajit.org/download.html 2、安装luajit 官方:http://luajit.org/install.html cd L...
  • yangxuan0261
  • yangxuan0261
  • 2014年06月28日 21:34
  • 2051

cocos2d luajit对Lua脚本编译加密的批处理工具

在项目中要对lua代码进行加密。在论坛上看到一个方法使用cocos2d引擎所包含的luajit对其进行编译加密。         地址是:cocos2d-x使用Luajit将Lua脚本编译为bytec...
  • ST_DarkMoon
  • ST_DarkMoon
  • 2016年11月15日 10:16
  • 1372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nginx+Luajit服务器全校验遇到的问题
举报原因:
原因补充:

(最多只允许输入30个字)