feat: palyer action and update common card
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
{"pid":48633,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 00:28:45","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"room service tick","requestTime":"2020-04-21 00:28:45","stack":null,"status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":49495,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 23:04:55","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"room service tick","requestTime":"2020-04-21 23:04:55","stack":null,"status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":49588,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 23:40:05","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"game already paling","requestTime":"2020-04-21 23:40:05","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51857,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:38:24","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"Handshake inactivity timeout","requestTime":"2020-04-22 23:38:24","stack":"Error: Handshake inactivity timeout\n at Handshake.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:160:17)\n at Handshake.emit (events.js:311:20)\n at Handshake._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:124:8)\n at Timer._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Timer.js:32:23)\n at listOnTimeout (internal/timers.js:549:17)\n at processTimers (internal/timers.js:492:7)\n --------------------\n at Protocol._enqueue (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:144:48)\n at Protocol.handshake (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:51:23)\n at PoolConnection.connect (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Connection.js:116:18)\n at Pool.getConnection (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:48:16)\n at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7\n at new Promise (<anonymous>)\n at Pool.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:12:10)\n at Pool.ret [as getConnection] (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:56:34)\n at Pool.query (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:202:8)\n at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7\n sql: select now() as currentTime;","total":null,"requestBody":{},"method":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:39:39","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"room service tick","requestTime":"2020-04-22 23:39:39","stack":null,"status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:43:45","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"game already paling","requestTime":"2020-04-22 23:43:45","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
|
||||
@@ -24,3 +24,16 @@
|
||||
{"pid":49495,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 23:05:14","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"INFO","message":"AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoSIsImFjY291bnQiOiJjYWkxMTEiLCJ1c2VySWQiOjJ9LCJpYXQiOjE1ODc0ODE1MTQsImV4cCI6MTU4NzUwMzExNH0.C9J4r3Xp_Uf9eslayzzu8f_JOLdaAJd53NeeUsOvhx4","requestTime":"2020-04-21 23:05:14","stack":"","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":49495,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 23:05:14","osUser":"root","osUid":0,"fetchConsumeTime":180,"level":"INFO","message":"POST /node/user/login info","requestTime":"2020-04-21 23:05:14","status":200,"total":null,"requestBody":{"userAccount":"cai111","password":"123"},"url":"/node/user/login"}
|
||||
{"pid":49588,"nodeVersion":"v12.16.1","launchTime":"2020-04-21 23:40:05","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"game already paling","requestTime":"2020-04-21 23:40:05","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51857,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:38:24","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"Handshake inactivity timeout","requestTime":"2020-04-22 23:38:24","stack":"Error: Handshake inactivity timeout\n at Handshake.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:160:17)\n at Handshake.emit (events.js:311:20)\n at Handshake._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:124:8)\n at Timer._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Timer.js:32:23)\n at listOnTimeout (internal/timers.js:549:17)\n at processTimers (internal/timers.js:492:7)\n --------------------\n at Protocol._enqueue (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:144:48)\n at Protocol.handshake (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:51:23)\n at PoolConnection.connect (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Connection.js:116:18)\n at Pool.getConnection (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:48:16)\n at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7\n at new Promise (<anonymous>)\n at Pool.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:12:10)\n at Pool.ret [as getConnection] (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:56:34)\n at Pool.query (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:202:8)\n at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7\n sql: select now() as currentTime;","total":null,"requestBody":{},"method":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:39:39","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"room service tick","requestTime":"2020-04-22 23:39:39","stack":null,"status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:40:04","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"INFO","message":"AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6ImMiLCJhY2NvdW50IjoiY2FpIiwidXNlcklkIjoxfSwiaWF0IjoxNTg3NTcwMDA0LCJleHAiOjE1ODc1OTE2MDR9.qCv_9sbRdWKY2lYPVz6imLwUkvpRXr1ImmLIPLnwxf4","requestTime":"2020-04-22 23:40:04","stack":"","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:40:04","osUser":"root","osUid":0,"fetchConsumeTime":208,"level":"INFO","message":"POST /node/user/login info","requestTime":"2020-04-22 23:40:04","status":200,"total":null,"requestBody":{"userAccount":"cai","password":"123"},"url":"/node/user/login"}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:40:05","osUser":"root","osUid":0,"fetchConsumeTime":109,"level":"INFO","message":"POST /node/game/room info","requestTime":"2020-04-22 23:40:05","status":200,"total":null,"requestBody":{},"url":"/node/game/room"}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:41:20","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"INFO","message":"AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6ImMiLCJhY2NvdW50IjoiY2FpIiwidXNlcklkIjoxfSwiaWF0IjoxNTg3NTcwMDgwLCJleHAiOjE1ODc1OTE2ODB9.S73RaBIpGQVhaELO6yfvBwDNUlrDdo1WUpfE4J_HwZs","requestTime":"2020-04-22 23:41:20","stack":"","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:41:20","osUser":"root","osUid":0,"fetchConsumeTime":206,"level":"INFO","message":"POST /node/user/login info","requestTime":"2020-04-22 23:41:20","status":200,"total":null,"requestBody":{"userAccount":"cai","password":"123"},"url":"/node/user/login"}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:41:22","osUser":"root","osUid":0,"fetchConsumeTime":102,"level":"INFO","message":"POST /node/game/room info","requestTime":"2020-04-22 23:41:22","status":200,"total":null,"requestBody":{},"url":"/node/game/room"}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:41:48","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"INFO","message":"AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoTEiLCJhY2NvdW50IjoiY2FpMTEiLCJ1c2VySWQiOjN9LCJpYXQiOjE1ODc1NzAxMDgsImV4cCI6MTU4NzU5MTcwOH0.1kZQu3oihvSnCIkyBl9vFK8BK_6wxM7QvlMv0-cfggs","requestTime":"2020-04-22 23:41:48","stack":"","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:41:48","osUser":"root","osUid":0,"fetchConsumeTime":203,"level":"INFO","message":"POST /node/user/login info","requestTime":"2020-04-22 23:41:48","status":200,"total":null,"requestBody":{"userAccount":"cai11","password":"123"},"url":"/node/user/login"}
|
||||
{"pid":51873,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:43:45","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"ERROR","message":"game already paling","requestTime":"2020-04-22 23:43:45","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51959,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:45:53","osUser":"root","osUid":0,"fetchConsumeTime":0,"level":"INFO","message":"AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoSIsImFjY291bnQiOiJjYWkxMTEiLCJ1c2VySWQiOjJ9LCJpYXQiOjE1ODc1NzAzNTMsImV4cCI6MTU4NzU5MTk1M30.QCROHyWqK_5kwhIpE3i2AwOfqsktIcRC7J9FwoZFTX8","requestTime":"2020-04-22 23:45:53","stack":"","status":"","timestamp":"","total":0,"requestBody":{},"method":"","url":""}
|
||||
{"pid":51959,"nodeVersion":"v12.16.1","launchTime":"2020-04-22 23:45:53","osUser":"root","osUid":0,"fetchConsumeTime":209,"level":"INFO","message":"POST /node/user/login info","requestTime":"2020-04-22 23:45:53","status":200,"total":null,"requestBody":{"userAccount":"cai111","password":"123"},"url":"/node/user/login"}
|
||||
|
||||
@@ -36,3 +36,41 @@
|
||||
2020-04-21 23:40:30,609 INFO 51406 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/interface.ts"
|
||||
2020-04-21 23:40:30,609 INFO 51406 [egg-watcher:agent] watcher start success
|
||||
2020-04-21 23:40:30,621 INFO 51406 [egg:core] dump config after ready, 5ms
|
||||
2020-04-22 23:38:13,556 INFO 51855 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"agent"}
|
||||
2020-04-22 23:38:13,566 INFO 51855 [egg:core] dump config after load, 6ms
|
||||
2020-04-22 23:38:13,628 INFO 51855 [egg-watcher] Start watching: ["/Users/jorky/code/TexasPokerGame/server/src/app","/Users/jorky/code/TexasPokerGame/server/src/lib","/Users/jorky/code/TexasPokerGame/server/src/service","/Users/jorky/code/TexasPokerGame/server/src/config","/Users/jorky/code/TexasPokerGame/server/src/app.ts","/Users/jorky/code/TexasPokerGame/server/src/agent.ts","/Users/jorky/code/TexasPokerGame/server/src/interface.ts"]
|
||||
2020-04-22 23:38:13,629 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app"
|
||||
2020-04-22 23:38:13,629 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/lib"
|
||||
2020-04-22 23:38:13,629 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/service"
|
||||
2020-04-22 23:38:13,629 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/config"
|
||||
2020-04-22 23:38:13,630 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app.ts"
|
||||
2020-04-22 23:38:13,630 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/agent.ts"
|
||||
2020-04-22 23:38:13,631 INFO 51855 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/interface.ts"
|
||||
2020-04-22 23:38:13,631 INFO 51855 [egg-watcher:agent] watcher start success
|
||||
2020-04-22 23:38:13,805 INFO 51855 [egg:core] dump config after ready, 163ms
|
||||
2020-04-22 23:39:33,398 INFO 51872 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"agent"}
|
||||
2020-04-22 23:39:33,406 INFO 51872 [egg:core] dump config after load, 5ms
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: ["/Users/jorky/code/TexasPokerGame/server/src/app","/Users/jorky/code/TexasPokerGame/server/src/lib","/Users/jorky/code/TexasPokerGame/server/src/service","/Users/jorky/code/TexasPokerGame/server/src/config","/Users/jorky/code/TexasPokerGame/server/src/app.ts","/Users/jorky/code/TexasPokerGame/server/src/agent.ts","/Users/jorky/code/TexasPokerGame/server/src/interface.ts"]
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app"
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/lib"
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/service"
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/config"
|
||||
2020-04-22 23:39:33,436 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app.ts"
|
||||
2020-04-22 23:39:33,437 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/agent.ts"
|
||||
2020-04-22 23:39:33,437 INFO 51872 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/interface.ts"
|
||||
2020-04-22 23:39:33,437 INFO 51872 [egg-watcher:agent] watcher start success
|
||||
2020-04-22 23:39:33,452 INFO 51872 [egg:core] dump config after ready, 8ms
|
||||
2020-04-22 23:44:42,430 INFO 51958 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"agent"}
|
||||
2020-04-22 23:44:42,439 INFO 51958 [egg:core] dump config after load, 4ms
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: ["/Users/jorky/code/TexasPokerGame/server/src/app","/Users/jorky/code/TexasPokerGame/server/src/lib","/Users/jorky/code/TexasPokerGame/server/src/service","/Users/jorky/code/TexasPokerGame/server/src/config","/Users/jorky/code/TexasPokerGame/server/src/app.ts","/Users/jorky/code/TexasPokerGame/server/src/agent.ts","/Users/jorky/code/TexasPokerGame/server/src/interface.ts"]
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app"
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/lib"
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/service"
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/config"
|
||||
2020-04-22 23:44:42,488 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/app.ts"
|
||||
2020-04-22 23:44:42,489 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/agent.ts"
|
||||
2020-04-22 23:44:42,489 INFO 51958 [egg-watcher] Start watching: "/Users/jorky/code/TexasPokerGame/server/src/interface.ts"
|
||||
2020-04-22 23:44:42,489 INFO 51958 [egg-watcher:agent] watcher start success
|
||||
2020-04-22 23:44:42,500 INFO 51958 [egg:core] dump config after ready, 5ms
|
||||
2020-04-22 23:51:32,377 INFO 51958 [egg-watcher] Recieved a change event from eventSource: {"event":"change","path":"/Users/jorky/code/TexasPokerGame/server/src/app/core/PokerGame.ts","stat":{"dev":16777220,"mode":33188,"nlink":1,"uid":501,"gid":20,"rdev":0,"blksize":4096,"ino":8594144547,"size":13522,"blocks":32,"atimeMs":1587569691708.252,"mtimeMs":1587570690863.5278,"ctimeMs":1587570690863.5278,"birthtimeMs":1587545680156.9385,"atime":"2020-04-22T15:34:51.708Z","mtime":"2020-04-22T15:51:30.864Z","ctime":"2020-04-22T15:51:30.864Z","birthtime":"2020-04-22T08:54:40.157Z"},"remove":false,"isDirectory":false,"isFile":true}
|
||||
2020-04-22 23:51:32,585 WARN 51958 [agent:development] reload worker because /Users/jorky/code/TexasPokerGame/server/src/app/core/PokerGame.ts change
|
||||
|
||||
@@ -128,3 +128,89 @@
|
||||
fetchEnd: 1587481514041
|
||||
}
|
||||
2020-04-21 23:40:05,073 ERROR 49588 game already paling
|
||||
2020-04-22 23:38:24,980 ERROR 51857 [-/127.0.0.1/-/1ms GET /] nodejs.PROTOCOL_SEQUENCE_TIMEOUTError: Handshake inactivity timeout
|
||||
at Handshake.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:160:17)
|
||||
at Handshake.emit (events.js:311:20)
|
||||
at Handshake._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:124:8)
|
||||
at Timer._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Timer.js:32:23)
|
||||
at listOnTimeout (internal/timers.js:549:17)
|
||||
at processTimers (internal/timers.js:492:7)
|
||||
--------------------
|
||||
at Protocol._enqueue (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:144:48)
|
||||
at Protocol.handshake (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:51:23)
|
||||
at PoolConnection.connect (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Connection.js:116:18)
|
||||
at Pool.getConnection (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:48:16)
|
||||
at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7
|
||||
at new Promise (<anonymous>)
|
||||
at Pool.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:12:10)
|
||||
at Pool.ret [as getConnection] (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:56:34)
|
||||
at Pool.query (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:202:8)
|
||||
at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7
|
||||
sql: select now() as currentTime;
|
||||
code: "PROTOCOL_SEQUENCE_TIMEOUT"
|
||||
fatal: true
|
||||
timeout: 10000
|
||||
name: "PROTOCOL_SEQUENCE_TIMEOUTError"
|
||||
pid: 51857
|
||||
hostname: 192.168.0.105
|
||||
|
||||
2020-04-22 23:39:39,501 ERROR 51873 [-/192.168.0.105/-/12ms GET /socket.io/?room=751675&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoTEiLCJhY2NvdW50IjoiY2FpMTEiLCJ1c2VySWQiOjN9LCJpYXQiOjE1ODc0ODEyOTUsImV4cCI6MTU4NzUwMjg5NX0.04tWzzIEspNyYmtY-EzyesrnpVwD7zx-0zG7K9Rdb2s&EIO=3&transport=websocket] room service tick null
|
||||
2020-04-22 23:40:04,092 INFO 51873 [-/192.168.0.105/-/209ms POST /node/user/login] AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6ImMiLCJhY2NvdW50IjoiY2FpIiwidXNlcklkIjoxfSwiaWF0IjoxNTg3NTcwMDA0LCJleHAiOjE1ODc1OTE2MDR9.qCv_9sbRdWKY2lYPVz6imLwUkvpRXr1ImmLIPLnwxf4
|
||||
2020-04-22 23:40:04,094 INFO 51873 [-/192.168.0.105/-/211ms POST /node/user/login] {
|
||||
fetchStart: 1587570003886,
|
||||
url: '/node/user/login',
|
||||
requestBody: { userAccount: 'cai', password: '123' },
|
||||
message: 'POST /node/user/login info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570004094
|
||||
}
|
||||
2020-04-22 23:40:05,232 INFO 51873 [-/192.168.0.105/-/110ms POST /node/game/room] {
|
||||
fetchStart: 1587570005123,
|
||||
url: '/node/game/room',
|
||||
requestBody: {},
|
||||
message: 'POST /node/game/room info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570005232
|
||||
}
|
||||
2020-04-22 23:41:20,878 INFO 51873 [-/192.168.0.105/-/205ms POST /node/user/login] AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6ImMiLCJhY2NvdW50IjoiY2FpIiwidXNlcklkIjoxfSwiaWF0IjoxNTg3NTcwMDgwLCJleHAiOjE1ODc1OTE2ODB9.S73RaBIpGQVhaELO6yfvBwDNUlrDdo1WUpfE4J_HwZs
|
||||
2020-04-22 23:41:20,879 INFO 51873 [-/192.168.0.105/-/206ms POST /node/user/login] {
|
||||
fetchStart: 1587570080673,
|
||||
url: '/node/user/login',
|
||||
requestBody: { userAccount: 'cai', password: '123' },
|
||||
message: 'POST /node/user/login info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570080879
|
||||
}
|
||||
2020-04-22 23:41:22,229 INFO 51873 [-/192.168.0.105/-/103ms POST /node/game/room] {
|
||||
fetchStart: 1587570082127,
|
||||
url: '/node/game/room',
|
||||
requestBody: {},
|
||||
message: 'POST /node/game/room info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570082229
|
||||
}
|
||||
2020-04-22 23:41:48,445 INFO 51873 [-/192.168.0.105/-/202ms POST /node/user/login] AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoTEiLCJhY2NvdW50IjoiY2FpMTEiLCJ1c2VySWQiOjN9LCJpYXQiOjE1ODc1NzAxMDgsImV4cCI6MTU4NzU5MTcwOH0.1kZQu3oihvSnCIkyBl9vFK8BK_6wxM7QvlMv0-cfggs
|
||||
2020-04-22 23:41:48,446 INFO 51873 [-/192.168.0.105/-/203ms POST /node/user/login] {
|
||||
fetchStart: 1587570108243,
|
||||
url: '/node/user/login',
|
||||
requestBody: { userAccount: 'cai11', password: '123' },
|
||||
message: 'POST /node/user/login info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570108446
|
||||
}
|
||||
2020-04-22 23:43:45,866 ERROR 51873 game already paling
|
||||
2020-04-22 23:45:53,762 INFO 51959 [-/192.168.0.101/-/233ms POST /node/user/login] AccountService getToken token--eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoSIsImFjY291bnQiOiJjYWkxMTEiLCJ1c2VySWQiOjJ9LCJpYXQiOjE1ODc1NzAzNTMsImV4cCI6MTU4NzU5MTk1M30.QCROHyWqK_5kwhIpE3i2AwOfqsktIcRC7J9FwoZFTX8
|
||||
2020-04-22 23:45:53,766 INFO 51959 [-/192.168.0.101/-/237ms POST /node/user/login] {
|
||||
fetchStart: 1587570353557,
|
||||
url: '/node/user/login',
|
||||
requestBody: { userAccount: 'cai111', password: '123' },
|
||||
message: 'POST /node/user/login info',
|
||||
level: 'INFO',
|
||||
status: 200,
|
||||
fetchEnd: 1587570353766
|
||||
}
|
||||
|
||||
@@ -145,3 +145,54 @@ hostname: 192.168.0.105
|
||||
2020-04-21 23:40:32,009 INFO 51407 [egg-watcher:application] watcher start success
|
||||
2020-04-21 23:40:32,220 INFO 51407 [egg-mysql] instance[0] status OK, rds currentTime: Tue Apr 21 2020 23:40:32 GMT+0800 (China Standard Time)
|
||||
2020-04-21 23:40:32,250 INFO 51407 [egg:core] dump config after ready, 6ms
|
||||
2020-04-22 23:38:14,656 INFO 51857 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"application"}
|
||||
2020-04-22 23:38:14,680 INFO 51857 [egg-multipart] stream mode enable
|
||||
2020-04-22 23:38:14,746 INFO 51857 [egg-redis] server connecting redis://:***@127.0.0.1:6379/0
|
||||
2020-04-22 23:38:14,765 INFO 51857 [egg-mysql] connecting root@47.104.172.100:3306/poker
|
||||
2020-04-22 23:38:14,942 INFO 51857 [egg-static] starting static serve /public/ -> /Users/jorky/code/TexasPokerGame/server/src/app/public
|
||||
2020-04-22 23:38:14,944 INFO 51857 [egg-security] use noopen middleware
|
||||
2020-04-22 23:38:14,944 INFO 51857 [egg-security] use nosniff middleware
|
||||
2020-04-22 23:38:14,945 INFO 51857 [egg-security] use xssProtection middleware
|
||||
2020-04-22 23:38:14,945 INFO 51857 [egg-security] use xframe middleware
|
||||
2020-04-22 23:38:14,946 INFO 51857 [egg-security] use dta middleware
|
||||
2020-04-22 23:38:14,946 INFO 51857 [egg-security] compose 5 middlewares into one security middleware
|
||||
2020-04-22 23:38:14,957 INFO 51857 [egg:core] dump config after load, 8ms
|
||||
2020-04-22 23:38:14,970 INFO 51857 [egg-redis] client connect success
|
||||
2020-04-22 23:38:14,975 INFO 51857 [egg-redis] instance[0] status OK, client ready
|
||||
2020-04-22 23:38:14,977 INFO 51857 [egg-watcher:application] watcher start success
|
||||
2020-04-22 23:38:25,007 INFO 51857 [egg:core] dump config after ready, 8ms
|
||||
2020-04-22 23:39:34,340 INFO 51873 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"application"}
|
||||
2020-04-22 23:39:34,362 INFO 51873 [egg-multipart] stream mode enable
|
||||
2020-04-22 23:39:34,422 INFO 51873 [egg-redis] server connecting redis://:***@127.0.0.1:6379/0
|
||||
2020-04-22 23:39:34,439 INFO 51873 [egg-mysql] connecting root@47.104.172.100:3306/poker
|
||||
2020-04-22 23:39:34,605 INFO 51873 [egg-static] starting static serve /public/ -> /Users/jorky/code/TexasPokerGame/server/src/app/public
|
||||
2020-04-22 23:39:34,607 INFO 51873 [egg-security] use noopen middleware
|
||||
2020-04-22 23:39:34,608 INFO 51873 [egg-security] use nosniff middleware
|
||||
2020-04-22 23:39:34,609 INFO 51873 [egg-security] use xssProtection middleware
|
||||
2020-04-22 23:39:34,610 INFO 51873 [egg-security] use xframe middleware
|
||||
2020-04-22 23:39:34,611 INFO 51873 [egg-security] use dta middleware
|
||||
2020-04-22 23:39:34,611 INFO 51873 [egg-security] compose 5 middlewares into one security middleware
|
||||
2020-04-22 23:39:34,620 INFO 51873 [egg:core] dump config after load, 5ms
|
||||
2020-04-22 23:39:34,631 INFO 51873 [egg-redis] client connect success
|
||||
2020-04-22 23:39:34,636 INFO 51873 [egg-redis] instance[0] status OK, client ready
|
||||
2020-04-22 23:39:34,639 INFO 51873 [egg-watcher:application] watcher start success
|
||||
2020-04-22 23:39:34,880 INFO 51873 [egg-mysql] instance[0] status OK, rds currentTime: Wed Apr 22 2020 23:39:34 GMT+0800 (China Standard Time)
|
||||
2020-04-22 23:39:34,926 INFO 51873 [egg:core] dump config after ready, 8ms
|
||||
2020-04-22 23:44:43,668 INFO 51959 [egg:logger] init all loggers with options: {"dir":"/Users/jorky/code/TexasPokerGame/server/logs/game-node-center","encoding":"utf8","env":"local","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":false,"outputJSON":false,"buffer":true,"appLogName":"app.log","coreLogName":"core.log","agentLogName":"agent.log","errorLogName":"error.log","coreLogger":{"consoleLevel":"WARN"},"allowDebugAtProd":false,"type":"application"}
|
||||
2020-04-22 23:44:43,690 INFO 51959 [egg-multipart] stream mode enable
|
||||
2020-04-22 23:44:43,735 INFO 51959 [egg-redis] server connecting redis://:***@127.0.0.1:6379/0
|
||||
2020-04-22 23:44:43,755 INFO 51959 [egg-mysql] connecting root@47.104.172.100:3306/poker
|
||||
2020-04-22 23:44:43,970 INFO 51959 [egg-static] starting static serve /public/ -> /Users/jorky/code/TexasPokerGame/server/src/app/public
|
||||
2020-04-22 23:44:43,973 INFO 51959 [egg-security] use noopen middleware
|
||||
2020-04-22 23:44:43,974 INFO 51959 [egg-security] use nosniff middleware
|
||||
2020-04-22 23:44:43,975 INFO 51959 [egg-security] use xssProtection middleware
|
||||
2020-04-22 23:44:43,976 INFO 51959 [egg-security] use xframe middleware
|
||||
2020-04-22 23:44:43,977 INFO 51959 [egg-security] use dta middleware
|
||||
2020-04-22 23:44:43,977 INFO 51959 [egg-security] compose 5 middlewares into one security middleware
|
||||
2020-04-22 23:44:43,989 INFO 51959 [egg:core] dump config after load, 7ms
|
||||
2020-04-22 23:44:44,008 INFO 51959 [egg-redis] client connect success
|
||||
2020-04-22 23:44:44,015 INFO 51959 [egg-redis] instance[0] status OK, client ready
|
||||
2020-04-22 23:44:44,017 INFO 51959 [egg-watcher:application] watcher start success
|
||||
2020-04-22 23:44:44,198 INFO 51959 [egg-mysql] instance[0] status OK, rds currentTime: Wed Apr 22 2020 23:44:44 GMT+0800 (China Standard Time)
|
||||
2020-04-22 23:44:44,224 INFO 51959 [egg:core] dump config after ready, 9ms
|
||||
2020-04-22 23:50:16,776 ERROR 51959 incorrect action: check
|
||||
|
||||
@@ -28,3 +28,18 @@
|
||||
2020-04-21 23:40:31,699 INFO 51407 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js
|
||||
2020-04-21 23:40:31,699 INFO 51407 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js
|
||||
2020-04-21 23:40:31,699 INFO 51407 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js
|
||||
2020-04-22 23:38:14,679 INFO 51857 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js
|
||||
2020-04-22 23:38:14,679 INFO 51857 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js
|
||||
2020-04-22 23:38:14,679 INFO 51857 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js
|
||||
2020-04-22 23:39:34,361 INFO 51873 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js
|
||||
2020-04-22 23:39:34,361 INFO 51873 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js
|
||||
2020-04-22 23:39:34,361 INFO 51873 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js
|
||||
2020-04-22 23:39:34,932 INFO 51872 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js next time will execute after 17425071ms at 2020-04-23 04:30:00.003
|
||||
2020-04-22 23:39:34,932 INFO 51872 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js next time will execute after 1225068ms at 2020-04-23 00:00:00.000
|
||||
2020-04-22 23:39:34,933 INFO 51872 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js next time will execute after 1226068ms at 2020-04-23 00:00:01.001
|
||||
2020-04-22 23:44:44,233 INFO 51958 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js next time will execute after 17115770ms at 2020-04-23 04:30:00.003
|
||||
2020-04-22 23:44:44,234 INFO 51958 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js next time will execute after 915767ms at 2020-04-23 00:00:00.001
|
||||
2020-04-22 23:44:44,234 INFO 51958 [Timer] /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js next time will execute after 916766ms at 2020-04-23 00:00:01.000
|
||||
2020-04-22 23:44:43,690 INFO 51959 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-multipart/app/schedule/clean_tmpdir.js
|
||||
2020-04-22 23:44:43,690 INFO 51959 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/clean_log.js
|
||||
2020-04-22 23:44:43,690 INFO 51959 [egg-schedule]: register schedule /Users/jorky/code/TexasPokerGame/server/node_modules/egg-logrotator/app/schedule/rotate_by_file.js
|
||||
|
||||
@@ -11,3 +11,32 @@ hostname: 192.168.0.105
|
||||
|
||||
2020-04-21 23:04:55,154 ERROR 49495 [-/192.168.0.101/-/13ms GET /socket.io/?room=751675&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoSIsImFjY291bnQiOiJjYWkxMTEiLCJ1c2VySWQiOjJ9LCJpYXQiOjE1ODczOTk4ODQsImV4cCI6MTU4NzQyMTQ4NH0.CVCe19KN0vg_4m1-axLTR6pz7DQPRQkcOWvBN5mn6PE&EIO=3&transport=websocket] room service tick null
|
||||
2020-04-21 23:40:05,072 ERROR 49588 game already paling
|
||||
2020-04-22 23:38:24,979 ERROR 51857 [-/127.0.0.1/-/1ms GET /] nodejs.PROTOCOL_SEQUENCE_TIMEOUTError: Handshake inactivity timeout
|
||||
at Handshake.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:160:17)
|
||||
at Handshake.emit (events.js:311:20)
|
||||
at Handshake._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:124:8)
|
||||
at Timer._onTimeout (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Timer.js:32:23)
|
||||
at listOnTimeout (internal/timers.js:549:17)
|
||||
at processTimers (internal/timers.js:492:7)
|
||||
--------------------
|
||||
at Protocol._enqueue (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:144:48)
|
||||
at Protocol.handshake (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/protocol/Protocol.js:51:23)
|
||||
at PoolConnection.connect (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Connection.js:116:18)
|
||||
at Pool.getConnection (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:48:16)
|
||||
at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7
|
||||
at new Promise (<anonymous>)
|
||||
at Pool.<anonymous> (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:12:10)
|
||||
at Pool.ret [as getConnection] (/Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:56:34)
|
||||
at Pool.query (/Users/jorky/code/TexasPokerGame/server/node_modules/mysql/lib/Pool.js:202:8)
|
||||
at /Users/jorky/code/TexasPokerGame/server/node_modules/ali-rds/node_modules/pify/index.js:29:7
|
||||
sql: select now() as currentTime;
|
||||
code: "PROTOCOL_SEQUENCE_TIMEOUT"
|
||||
fatal: true
|
||||
timeout: 10000
|
||||
name: "PROTOCOL_SEQUENCE_TIMEOUTError"
|
||||
pid: 51857
|
||||
hostname: 192.168.0.105
|
||||
|
||||
2020-04-22 23:39:39,501 ERROR 51873 [-/192.168.0.105/-/12ms GET /socket.io/?room=751675&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im5pY2tfbmFtZSI6IuiUoTEiLCJhY2NvdW50IjoiY2FpMTEiLCJ1c2VySWQiOjN9LCJpYXQiOjE1ODc0ODEyOTUsImV4cCI6MTU4NzUwMjg5NX0.04tWzzIEspNyYmtY-EzyesrnpVwD7zx-0zG7K9Rdb2s&EIO=3&transport=websocket] room service tick null
|
||||
2020-04-22 23:43:45,865 ERROR 51873 game already paling
|
||||
2020-04-22 23:50:16,775 ERROR 51959 incorrect action: check
|
||||
|
||||
@@ -76,7 +76,7 @@ export class Player {
|
||||
let size = 0;
|
||||
if (command !== ECommand.ALL_IN
|
||||
&& (prevSize > (this.counter + this.actionSize) || raiseSize > this.counter)) {
|
||||
throw 'error action, overflow action size';
|
||||
throw 'player: error action, overflow action size';
|
||||
}
|
||||
|
||||
// BLIND
|
||||
@@ -90,7 +90,7 @@ export class Player {
|
||||
if (this.position === 3) {
|
||||
size = raiseSize;
|
||||
} else {
|
||||
throw 'error action STRADDLE';
|
||||
throw 'player: error action STRADDLE';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,9 +98,9 @@ export class Player {
|
||||
if (command === ECommand.RAISE) {
|
||||
// raise must double to prevSize
|
||||
if ((raiseSize + this.actionSize) >= prevSize * 2) {
|
||||
size = raiseSize + this.actionSize;
|
||||
size = raiseSize;
|
||||
} else {
|
||||
throw 'error action: raise size too small';
|
||||
throw 'player: error action: raise size too small';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ export class Player {
|
||||
}
|
||||
|
||||
if (command === ECommand.CALL) {
|
||||
console.log('player: call----------------', prevSize, this.actionSize);
|
||||
size = prevSize - this.actionSize;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ export enum EGameStatus {
|
||||
GAME_OVER,
|
||||
}
|
||||
|
||||
const ACTION_TIME = 60 * 1000;
|
||||
|
||||
export class PokerGame {
|
||||
commonCard: string[] = [];
|
||||
fireCards: string[] = [];
|
||||
@@ -88,9 +90,12 @@ export class PokerGame {
|
||||
play() {
|
||||
this.status = EGameStatus.GAME_START;
|
||||
this.sendCard();
|
||||
}
|
||||
|
||||
startActionRound() {
|
||||
this.actionTimeOut = setTimeout(async () => {
|
||||
this.action('fold');
|
||||
}, 6000);
|
||||
}, ACTION_TIME);
|
||||
}
|
||||
|
||||
action(commandString: string) {
|
||||
@@ -120,7 +125,8 @@ export class PokerGame {
|
||||
&& this.prevSize === this.smallBlind * 2, 'big blind', this.currPlayer);
|
||||
// prev player must be check
|
||||
if (!(this.prevSize === 0 ||
|
||||
(this.currPlayer.node.type === EPlayerType.BIG_BLIND
|
||||
((this.currPlayer.node.type === EPlayerType.BIG_BLIND
|
||||
|| this.playerSize === 2 && this.currPlayer.node.type === EPlayerType.DEALER)
|
||||
&& this.prevSize === this.smallBlind * 2))) {
|
||||
throw 'incorrect action: check';
|
||||
}
|
||||
@@ -134,39 +140,41 @@ export class PokerGame {
|
||||
throw 'incorrect action: raise';
|
||||
}
|
||||
}
|
||||
this.currPlayer.node.action(commandString, this.prevSize);
|
||||
this.prevSize = size;
|
||||
const nextPlayer = this.currPlayer.next.node;
|
||||
// all check actionSize === -1
|
||||
// all player allin
|
||||
// only 2 player, curr player fold, next player already action
|
||||
// only one player ,one player fold,other player allin
|
||||
// pre flop big blind check and other player call
|
||||
// console.log('this.currPlayer----------', this.currPlayer, nextPlayer, command);
|
||||
if (this.playerSize === 0
|
||||
|| (command === ECommand.FOLD && this.currPlayer.next.node.actionSize !== 0)
|
||||
|| (nextPlayer.actionSize === this.currPlayer.node.actionSize && command !== ECommand.FOLD)
|
||||
|| (this.commonCard.length === 0
|
||||
&& this.currPlayer.node.type === EPlayerType.BIG_BLIND
|
||||
&& command === ECommand.CHECK)) {
|
||||
// console.log('ccc------', this.currPlayer, nextPlayer, command, this.playerSize);
|
||||
console.log('actionComplete');
|
||||
|
||||
this.actionComplete();
|
||||
try {
|
||||
clearTimeout(this.actionTimeOut);
|
||||
return;
|
||||
}
|
||||
this.currPlayer = this.currPlayer.next;
|
||||
// action time is 60s
|
||||
clearTimeout(this.actionTimeOut);
|
||||
console.log('action auto');
|
||||
this.actionTimeOut = setTimeout(async () => {
|
||||
if (command === ECommand.CHECK || command === ECommand.FOLD) {
|
||||
this.action('check');
|
||||
} else {
|
||||
this.action('fold');
|
||||
this.currPlayer.node.action(commandString, this.prevSize);
|
||||
this.prevSize = size;
|
||||
const nextPlayer = this.currPlayer.next.node;
|
||||
// all check actionSize === -1
|
||||
// all player allin
|
||||
// only 2 player, curr player fold, next player already action
|
||||
// only one player ,one player fold,other player allin
|
||||
// pre flop big blind check and other player call
|
||||
console.log('this.currPlayer----------', this.currPlayer, nextPlayer, command);
|
||||
if (this.playerSize === 0
|
||||
|| (nextPlayer.actionSize === size)
|
||||
|| (this.commonCard.length === 0
|
||||
&& (this.currPlayer.node.type === EPlayerType.BIG_BLIND
|
||||
|| this.playerSize === 2 && this.currPlayer.node.type === EPlayerType.DEALER)
|
||||
&& command === ECommand.CHECK)) {
|
||||
// console.log('ccc------', this.currPlayer, nextPlayer, command, this.playerSize);
|
||||
console.log('actionComplete');
|
||||
this.actionComplete();
|
||||
return;
|
||||
}
|
||||
}, 6000);
|
||||
this.currPlayer = this.currPlayer.next;
|
||||
// action time is 60s
|
||||
console.log('action auto');
|
||||
this.actionTimeOut = setTimeout(() => {
|
||||
if (command === ECommand.CHECK || command === ECommand.FOLD) {
|
||||
this.action('check');
|
||||
} else {
|
||||
this.action('fold');
|
||||
}
|
||||
}, ACTION_TIME);
|
||||
} catch (e) {
|
||||
throw 'action:' + e;
|
||||
}
|
||||
} else {
|
||||
throw 'incorrect action flow';
|
||||
}
|
||||
@@ -216,6 +224,7 @@ export class PokerGame {
|
||||
if (this.status === EGameStatus.GAME_SHOWDOWN || this.playerSize <= 1) {
|
||||
this.gameOver();
|
||||
}
|
||||
this.updateCommonCard();
|
||||
}
|
||||
setSate() {
|
||||
if (this.status === EGameStatus.GAME_ACTION) {
|
||||
@@ -246,14 +255,12 @@ export class PokerGame {
|
||||
this.fireCards.push(this.poker.getCard());
|
||||
this.flop();
|
||||
this.setSate();
|
||||
this.updateCommonCard();
|
||||
return;
|
||||
}
|
||||
if (this.status === EGameStatus.GAME_TURN || this.status === EGameStatus.GAME_RIVER) {
|
||||
this.fireCards.push(this.poker.getCard());
|
||||
this.commonCard.push(this.poker.getCard());
|
||||
this.setSate();
|
||||
this.updateCommonCard();
|
||||
return;
|
||||
}
|
||||
throw 'error flow sendCard';
|
||||
|
||||
@@ -26,66 +26,49 @@ class GameController extends BaseSocketController {
|
||||
users: roomInfo.players,
|
||||
smallBlind: 1,
|
||||
updateCommonCard: () => {
|
||||
console.log('send common card');
|
||||
this.nsp.adapter.clients([ this.roomNumber ], (err: any, clients: any) => {
|
||||
if (roomInfo.game) {
|
||||
// 更新common card
|
||||
this.nsp.to(this.roomNumber).emit('online', {
|
||||
clients,
|
||||
action: 'commonCard',
|
||||
target: 'participator',
|
||||
data: {
|
||||
commonCard: roomInfo.game.commonCard,
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
// game over
|
||||
if (roomInfo.game?.status !== 6) {
|
||||
roomInfo.game?.startActionRound();
|
||||
roomInfo.game?.sendCard();
|
||||
} else {
|
||||
console.log('game over-------------');
|
||||
console.log(roomInfo.game.commonCard);
|
||||
console.log(roomInfo.game.pot);
|
||||
console.log(roomInfo.game.getPlayers());
|
||||
console.log(roomInfo.game.winner);
|
||||
}
|
||||
console.log('send common card', roomInfo.game?.status);
|
||||
this.nsp.adapter.clients([ this.roomNumber ],
|
||||
(err: any, clients: any) => {
|
||||
if (roomInfo.game) {
|
||||
// 更新common card
|
||||
this.nsp.to(this.roomNumber).emit('online', {
|
||||
clients,
|
||||
action: 'commonCard',
|
||||
target: 'participator',
|
||||
data: {
|
||||
commonCard: roomInfo.game.commonCard,
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
roomInfo.game.play();
|
||||
roomInfo.game.startActionRound();
|
||||
console.log('hand card', roomInfo.game.allPlayer);
|
||||
// update counter, pot
|
||||
this.nsp.adapter.clients([ this.roomNumber ], (err: any, clients: any) => {
|
||||
if (roomInfo.game) {
|
||||
roomInfo.players.forEach(p => {
|
||||
const currPlayer = roomInfo.game && roomInfo.game.allPlayer.find(player => player.userId === p.userId);
|
||||
p.counter = currPlayer && currPlayer.counter || 0;
|
||||
});
|
||||
const gameInfo = {
|
||||
players: roomInfo.game.allPlayer.map(p => Object.assign({}, {
|
||||
counter: p.counter,
|
||||
actionSize: p.actionSize,
|
||||
nick_name: p.nick_name,
|
||||
type: p.type,
|
||||
}, {})),
|
||||
pot: roomInfo.game.pot,
|
||||
prevSize: roomInfo.game.prevSize,
|
||||
currPlayer: {
|
||||
userId: roomInfo.game.currPlayer.node.userId,
|
||||
},
|
||||
};
|
||||
// 广播信息
|
||||
this.nsp.to(this.roomNumber).emit('online', {
|
||||
clients,
|
||||
action: 'gameInfo',
|
||||
target: 'participator',
|
||||
data: gameInfo,
|
||||
});
|
||||
}
|
||||
});
|
||||
await this.updateGameInfo();
|
||||
roomInfo.players.forEach(p => {
|
||||
if (roomInfo.game) {
|
||||
// console.log('game msg---------1');
|
||||
const player = roomInfo.game.allPlayer.find(player => player.socketId === p.socketId);
|
||||
// console.log(player, 'game msg---------1');
|
||||
if (player) {
|
||||
const msg = this.ctx.helper.parseMsg('handCard', {
|
||||
handCard: player.getHandCard(),
|
||||
}, { client: p.socketId });
|
||||
console.log(msg, 'game msg---------', p.socketId);
|
||||
this.nsp.emit(p.socketId, msg);
|
||||
}
|
||||
}
|
||||
// console.log('game msg---------1');
|
||||
const player = roomInfo.game?.allPlayer.find(
|
||||
player => player.socketId === p.socketId);
|
||||
// console.log(player, 'game msg---------1');
|
||||
const msg = this.ctx.helper.parseMsg('handCard', {
|
||||
handCard: player?.getHandCard(),
|
||||
}, { client: p.socketId });
|
||||
console.log(msg, 'game msg---------', p.socketId);
|
||||
this.nsp.emit(p.socketId, msg);
|
||||
});
|
||||
} else {
|
||||
throw 'game already paling';
|
||||
@@ -101,7 +84,8 @@ class GameController extends BaseSocketController {
|
||||
const roomInfo: IRoomInfo = await this.getRoomInfo();
|
||||
const { payload } = this.ctx.args[0] || {};
|
||||
const { buyInSize } = payload;
|
||||
const player = roomInfo.players.find((p: IPlayer) => p.nick_name === userInfo.nick_name);
|
||||
const player = roomInfo.players.find(
|
||||
(p: IPlayer) => p.nick_name === userInfo.nick_name);
|
||||
console.log(userInfo, 'userInfo------');
|
||||
if (player) {
|
||||
player.counter = buyInSize;
|
||||
@@ -132,10 +116,12 @@ class GameController extends BaseSocketController {
|
||||
try {
|
||||
const userInfo: IPlayer = await this.getUserInfo();
|
||||
const roomInfo: IRoomInfo = await this.getRoomInfo();
|
||||
const player = roomInfo.players.find((p: IPlayer) => p.nick_name === userInfo.nick_name);
|
||||
const player = roomInfo.players.find(
|
||||
(p: IPlayer) => p.nick_name === userInfo.nick_name);
|
||||
console.log(userInfo, 'userInfo------');
|
||||
if (player && roomInfo.game) {
|
||||
const gamePlayer = roomInfo.game.allPlayer.find(p => player.socketId === p.socketId);
|
||||
const gamePlayer = roomInfo.game.allPlayer.find(
|
||||
p => player.socketId === p.socketId);
|
||||
if (gamePlayer) {
|
||||
const msg = this.ctx.helper.parseMsg('handCard', {
|
||||
handCard: gamePlayer.getHandCard(),
|
||||
@@ -151,14 +137,53 @@ class GameController extends BaseSocketController {
|
||||
}
|
||||
}
|
||||
|
||||
async updateGameInfo() {
|
||||
const roomInfo = await this.getRoomInfo();
|
||||
this.nsp.adapter.clients([ this.roomNumber ], (err: any, clients: any) => {
|
||||
if (roomInfo.game) {
|
||||
roomInfo.players.forEach(p => {
|
||||
const currPlayer = roomInfo.game &&
|
||||
roomInfo.game.allPlayer.find(player => player.userId === p.userId);
|
||||
p.counter = currPlayer && currPlayer.counter || 0;
|
||||
});
|
||||
const gameInfo = {
|
||||
players: roomInfo.game.allPlayer.map(p => Object.assign({}, {
|
||||
counter: p.counter,
|
||||
actionSize: p.actionSize,
|
||||
nick_name: p.nick_name,
|
||||
type: p.type,
|
||||
}, {})),
|
||||
pot: roomInfo.game.pot,
|
||||
prevSize: roomInfo.game.prevSize,
|
||||
currPlayer: {
|
||||
userId: roomInfo.game.currPlayer.node.userId,
|
||||
},
|
||||
};
|
||||
// 广播信息
|
||||
this.nsp.to(this.roomNumber).emit('online', {
|
||||
clients,
|
||||
action: 'gameInfo',
|
||||
target: 'participator',
|
||||
data: gameInfo,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async action() {
|
||||
try {
|
||||
const { payload } = this.message;
|
||||
const userInfo: IPlayer = await this.getUserInfo();
|
||||
const roomInfo = await this.getRoomInfo();
|
||||
if (roomInfo.game && roomInfo.game.currPlayer.node.userId === userInfo.userId) {
|
||||
console.log('action:', payload.command);
|
||||
console.log('action:', roomInfo.game && roomInfo.game.currPlayer.node,
|
||||
userInfo);
|
||||
if (roomInfo.game && roomInfo.game.currPlayer.node.userId ===
|
||||
userInfo.userId) {
|
||||
roomInfo.game.action(payload.command);
|
||||
// todo notice next player action
|
||||
await this.updateGameInfo();
|
||||
console.log('curr player', roomInfo.game.currPlayer.node);
|
||||
} else {
|
||||
throw 'action flow incorrect';
|
||||
}
|
||||
|
||||
@@ -19,13 +19,13 @@ describe('test/app/core/pokerGame.test.ts', () => {
|
||||
account: '2',
|
||||
socketId: '2',
|
||||
},
|
||||
{
|
||||
userId: '3',
|
||||
counter: 50,
|
||||
nick_name: '3',
|
||||
account: '3',
|
||||
socketId: '3',
|
||||
},
|
||||
// {
|
||||
// userId: '3',
|
||||
// counter: 50,
|
||||
// nick_name: '3',
|
||||
// account: '3',
|
||||
// socketId: '3',
|
||||
// },
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -39,7 +39,6 @@ describe('test/app/core/pokerGame.test.ts', () => {
|
||||
});
|
||||
game.play();
|
||||
expect(game.status).to.equal(EGameStatus.GAME_ACTION);
|
||||
expect(game.currPlayer.node.actionSize).to.equal(0);
|
||||
expect(game.pot).to.equal(3);
|
||||
expect(game.pot).to.equal(3);
|
||||
expect(game.playerLink.getNode(1).node.actionSize).to.equal(1);
|
||||
@@ -55,7 +54,8 @@ describe('test/app/core/pokerGame.test.ts', () => {
|
||||
updateCommonCard: () => {},
|
||||
});
|
||||
game.play();
|
||||
// game.action('call');
|
||||
game.action('raise:9');
|
||||
game.action('call');
|
||||
// game.action('call');
|
||||
// game.action('call');
|
||||
// game.action('call');
|
||||
|
||||
Reference in New Issue
Block a user