公司是做棋牌游戏的.前段时间接到一个后台人工鉴定并处理通牌作弊玩家的需求,其中需要根据几个玩家的游戏ID查询并计算他们在某段时间内彼此之间玩牌输赢次数和输赢总额. 牌局数据是存储在日志中心的,他们把牌局数据分成两个表来存储,一个表存储牌局概况数据,例如牌局时间.牌局ID.桌子ID.用户ID等信息,另一个表则存储每一个牌局的详情数据,例如,牌局有多少玩家参与,荷官在哪一轮发了什么牌,玩家每一轮都有什么动作等等.要想计算出几个玩家在某段时间之内玩牌输赢次数和输赢总额,就需要知道每一个牌局的详情数据,…
一.开启多进程 const os = require('os'); const cp = require('child_process'); const forkList = {}; const forkPrefix = 'fork_'; let cpusLen = os.cpus().length; let port = 9562; for (var i = 1; i <= cpusLen; i++) { forkList[forkPrefix + i] = cp.fork(`${__dirn…
上次的nodejs操作arduino入门篇中实现了如何连接arduino.这次我们来实现通过arduino测量室内温度并在浏览器上显示出来. [所需材料] 硬件:LM35温度传感器,arduino uno板,面包板,若干导线. 软件:socket.io , cylonJs , express等 [准备-硬件部分] 1.首先当然是连接电路板: 注意这个ANALOG IN是传感器的输入,就是读取温度的入口. 看看我连的: 2.然后按照 nodejs操作arduino入门篇先连接上arduino试试吧…
这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵呵 前篇 使用React.Node.js.MongoDB.Socket.IO开发一个角色投票应用的学习过程(一) 使用React.Node.js.MongoDB.Socket.IO开发一个角色投票应用的学习过程(二) 原文第十三步,Express API路由 第一个路由是用来创建角色的 app.po…
socket.io与cluster 在线上系统中,需要使用node的多进程模型,我们可以自己实现简易的基于cluster模式的socket分发模型,也可以使用比较稳定的pm2这样进程管理工具.在常规的http服务中,这套模式一切正常,可是一旦server中集成了socket.io服务就会导致ws通道建立失败,即使通过backup的polling方式仍会出现时断时连的现象,因此我们需要解决这种问题,让socket.io充分利用多核. 在这里之所以提到socket.io而未说websocket服务,…
socket.io https://socket.io/ https://socket.io/docs/ What Socket.IO is Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server. It consists of: a Node.js server: Source | API a Jav…
一.游戏描述 说是斗地主游戏,其实是寝室自创的"捉双A",跟很多地方的捉红10.打红A差不多,大概规则是: 1.基础牌型和斗地主一样,但没有大小王,共52张牌,每人13张,这也是为什么题目直接叫斗地主游戏的原因了. 2.手牌有黑桃A和草花A的两个人一伙:若黑桃A和草花A都在一个人手里,那就自己一伙. 3.开牌之后可以选择亮A或者不亮A,亮A之后队友也应亮明身份,互相配合出牌. 4.随机指定最先出牌者. 5.按照手牌出完顺序记分数,分别记4.3.2.1分,最后整队加和,分数高的队伍获胜.…
注:下面Demo的Server和Client都是纯后端. 并没有web页面. Server端代码: var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); //定义变量,用来存储socket.如果是多进程的话,那么socket可以考虑存入redis中 var socket…
1.多线程网络IO请求: #!/usr/bin/python #coding:utf-8 from concurrent.futures import ThreadPoolExecutor import requests #线程池 # def get_page(url): # response = requests.get(url) # print response.url # return response # # urllist=["https://www.baidu.com/",…
WebSocket HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯. 在2008年诞生,2011年成为国际标准. 现在基本所有浏览器都已经支持了. WebSocket是一种在单个TCP连接上进行全双工通信的协议.在WebSocket API中,浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接后传输一次握手数据),两者之间就直接可以创建持久性的连接,并进行双向数据传输. Websocket使用ws或wss的统…