Commit b42d4a5d authored by mercury233's avatar mercury233

Revert "full of bug" to get useable version

This reverts commit 42ae911a.
parent 42ae911a
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
"underscore": "*", "underscore": "*",
"underscore.string": "*", "underscore.string": "*",
"request": "*", "request": "*",
"bunyan": "*" "bunyan": "*",
}, },
"license": "GPLv3", "license": "GPLv3",
"main": "ygopro-server.js", "main": "ygopro-server.js",
......
...@@ -83,7 +83,7 @@ class Room ...@@ -83,7 +83,7 @@ class Room
@process = spawn './ygopro', param, cwd: 'ygocore' @process = spawn './ygopro', param, cwd: 'ygocore'
@process.on 'exit', (code)=> @process.on 'exit', (code)=>
#log.info 'room-exit', this.name, this.port, code #log.info 'room-exit', this.name, this.port, code
@process = null @disconnector = 'server' unless @disconnector
this.delete() this.delete()
@process.stdout.setEncoding('utf8') @process.stdout.setEncoding('utf8')
@process.stdout.once 'data', (data)=> @process.stdout.once 'data', (data)=>
...@@ -91,10 +91,7 @@ class Room ...@@ -91,10 +91,7 @@ class Room
@port = parseInt data @port = parseInt data
_.each @players, (player)=> _.each @players, (player)=>
player.server.connect @port, '127.0.0.1',=> player.server.connect @port, '127.0.0.1',=>
for buffer in player.pre_establish_buffers player.server.write buffer for buffer in player.pre_establish_buffers
player.buffer=buffer
buffer=null
player.server.write player.buffer
player.established = true player.established = true
delete: -> delete: ->
...@@ -110,10 +107,7 @@ class Room ...@@ -110,10 +107,7 @@ class Room
if @established if @established
client.server.connect @port, '127.0.0.1', -> client.server.connect @port, '127.0.0.1', ->
for buffer in client.pre_establish_buffers client.server.write buffer for buffer in client.pre_establish_buffers
client.buffer=buffer
buffer=null
client.server.write client.buffer
client.established = true client.established = true
disconnect: (client, error)-> disconnect: (client, error)->
...@@ -127,7 +121,7 @@ class Room ...@@ -127,7 +121,7 @@ class Room
if @players.length if @players.length
ygopro.stoc_send_chat_to_room this, "#{client.name} #{'离开了游戏'}#{if error then ": #{error}" else ''}" ygopro.stoc_send_chat_to_room this, "#{client.name} #{'离开了游戏'}#{if error then ": #{error}" else ''}"
else else
@process.kill() if @process @process.kill()
this.delete() this.delete()
module.exports = Room module.exports = Room
\ No newline at end of file
...@@ -99,7 +99,9 @@ ...@@ -99,7 +99,9 @@
}); });
this.process.on('exit', (function(_this) { this.process.on('exit', (function(_this) {
return function(code) { return function(code) {
_this.process = null; if (!_this.disconnector) {
_this.disconnector = 'server';
}
return _this["delete"](); return _this["delete"]();
}; };
})(this)); })(this));
...@@ -114,9 +116,7 @@ ...@@ -114,9 +116,7 @@
ref = player.pre_establish_buffers; ref = player.pre_establish_buffers;
for (i = 0, len = ref.length; i < len; i++) { for (i = 0, len = ref.length; i < len; i++) {
buffer = ref[i]; buffer = ref[i];
player.buffer = buffer; player.server.write(buffer);
buffer = null;
player.server.write(player.buffer);
} }
return player.established = true; return player.established = true;
}); });
...@@ -148,9 +148,7 @@ ...@@ -148,9 +148,7 @@
ref = client.pre_establish_buffers; ref = client.pre_establish_buffers;
for (i = 0, len = ref.length; i < len; i++) { for (i = 0, len = ref.length; i < len; i++) {
buffer = ref[i]; buffer = ref[i];
client.buffer = buffer; client.server.write(buffer);
buffer = null;
client.server.write(client.buffer);
} }
return client.established = true; return client.established = true;
}); });
...@@ -173,9 +171,7 @@ ...@@ -173,9 +171,7 @@
if (this.players.length) { if (this.players.length) {
return ygopro.stoc_send_chat_to_room(this, client.name + " " + '离开了游戏' + (error ? ": " + error : '')); return ygopro.stoc_send_chat_to_room(this, client.name + " " + '离开了游戏' + (error ? ": " + error : ''));
} else { } else {
if (this.process) { this.process.kill();
this.process.kill();
}
return this["delete"](); return this["delete"]();
} }
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -76,9 +76,8 @@ for name, declaration of structs_declaration ...@@ -76,9 +76,8 @@ for name, declaration of structs_declaration
header = new Buffer(3) header = new Buffer(3)
header.writeUInt16LE buffer.length + 1, 0 header.writeUInt16LE buffer.length + 1, 0
header.writeUInt8 proto, 2 header.writeUInt8 proto, 2
if socket socket.write header
socket.write header socket.write buffer if buffer.length
socket.write buffer if buffer.length
@ctos_send = (socket, proto, info)-> @ctos_send = (socket, proto, info)->
#console.log proto, proto_structs.CTOS[proto], structs[proto_structs.CTOS[proto]] #console.log proto, proto_structs.CTOS[proto], structs[proto_structs.CTOS[proto]]
...@@ -102,9 +101,8 @@ for name, declaration of structs_declaration ...@@ -102,9 +101,8 @@ for name, declaration of structs_declaration
header = new Buffer(3) header = new Buffer(3)
header.writeUInt16LE buffer.length + 1, 0 header.writeUInt16LE buffer.length + 1, 0
header.writeUInt8 proto, 2 header.writeUInt8 proto, 2
if socket socket.write header
socket.write header socket.write buffer if buffer.length
socket.write buffer if buffer.length
#util #util
@stoc_send_chat = (client, msg, player = 8)-> @stoc_send_chat = (client, msg, player = 8)->
......
...@@ -126,11 +126,9 @@ ...@@ -126,11 +126,9 @@
header = new Buffer(3); header = new Buffer(3);
header.writeUInt16LE(buffer.length + 1, 0); header.writeUInt16LE(buffer.length + 1, 0);
header.writeUInt8(proto, 2); header.writeUInt8(proto, 2);
if (socket) { socket.write(header);
socket.write(header); if (buffer.length) {
if (buffer.length) { return socket.write(buffer);
return socket.write(buffer);
}
} }
}; };
...@@ -162,11 +160,9 @@ ...@@ -162,11 +160,9 @@
header = new Buffer(3); header = new Buffer(3);
header.writeUInt16LE(buffer.length + 1, 0); header.writeUInt16LE(buffer.length + 1, 0);
header.writeUInt8(proto, 2); header.writeUInt8(proto, 2);
if (socket) { socket.write(header);
socket.write(header); if (buffer.length) {
if (buffer.length) { return socket.write(buffer);
return socket.write(buffer);
}
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment