mirror of
https://github.com/socketio/socket.io.git
synced 2026-04-30 03:00:39 -04:00
Merge pull request #6 from kevin-roark/add/binary-ack-support
Encoding ack packets as binary
This commit is contained in:
13
index.js
13
index.js
@@ -102,7 +102,7 @@ function Encoder() {};
|
||||
Encoder.prototype.encode = function(obj, callback){
|
||||
debug('encoding packet %j', obj);
|
||||
|
||||
if (obj.type == exports.BINARY_EVENT) {
|
||||
if (exports.BINARY_EVENT == obj.type || exports.ACK == obj.type) {
|
||||
encodeAsBinary(obj, callback);
|
||||
}
|
||||
else {
|
||||
@@ -127,7 +127,7 @@ function encodeAsString(obj) {
|
||||
str += obj.type;
|
||||
|
||||
// attachments if we have them
|
||||
if (exports.BINARY_EVENT == obj.type) {
|
||||
if (exports.BINARY_EVENT == obj.type || exports.ACK == obj.type) {
|
||||
str += obj.attachments;
|
||||
str += '-';
|
||||
}
|
||||
@@ -213,8 +213,13 @@ Decoder.prototype.add = function(obj) {
|
||||
var packet;
|
||||
if ('string' == typeof obj) {
|
||||
packet = decodeString(obj);
|
||||
if (packet.type == exports.BINARY_EVENT) { // binary packet's json
|
||||
if (exports.BINARY_EVENT == packet.type || exports.ACK == packet.type) { // binary packet's json
|
||||
this.reconstructor = new BinaryReconstructor(packet);
|
||||
|
||||
// no attachments, labeled binary but no binary data to follow
|
||||
if (this.reconstructor.reconPack.attachments == 0) {
|
||||
this.emit('decoded', packet);
|
||||
}
|
||||
} else { // non-binary full packet
|
||||
this.emit('decoded', packet);
|
||||
}
|
||||
@@ -254,7 +259,7 @@ function decodeString(str) {
|
||||
if (null == exports.types[p.type]) return error();
|
||||
|
||||
// look up attachments if type binary
|
||||
if (exports.BINARY_EVENT == p.type) {
|
||||
if (exports.BINARY_EVENT == p.type || exports.ACK == p.type) {
|
||||
p.attachments = '';
|
||||
while (str.charAt(++i) != '-') {
|
||||
p.attachments += str.charAt(i);
|
||||
|
||||
Reference in New Issue
Block a user