Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 9 additions & 16 deletions lib/easy_sock.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,19 +71,22 @@ Easysock.prototype.isAlive = false;
* 对外的获取数据的接口方法
* @param {[Array]} data [任意类型,会直接传给encode函数]
* @param {[Function]} callback [回调函数(err, data)]
* @param {[Boolean]} neverPush 默认false, 当socket未ready时会压入等待队列,true时不再压入,直接抛错
* @return {[string]} [发送方式,wait等待socket连接,create创建socket,write复用socket]
*/
Easysock.prototype.write = function(data, callback){
Easysock.prototype.write = function(data, callback, neverPush){
var self = this;
//当在这两个状态的时候,先保留请求,等连接成功后再执行
if (this.between_connect || this.between_close){

this.tmpGetTaskList.push(function(err){
if (neverPush) {
return callback(new Error('socket losted!'));
}
this.tmpGetTaskList.push(function(err, assertReady){
if (err){
callback(err);
}
else{
self.write(data, callback);
self.write(data, callback, assertReady);
}
});
return 'wait';
Expand Down Expand Up @@ -221,20 +224,10 @@ function initSocket(cur){
cur.between_connect = false;

//外部有可能会在发起连接但还没完成的时候发起请求,所以,把积累的请求都发了
/* let get;
let get;
while(get = cur.tmpGetTaskList.shift()) {
get();
} */

function asyncWhile() {
cur.tmpGetTaskList.shift()();
setTimeout(function () {
if (cur.tmpGetTaskList.length) {
asyncWhile();
}
})
get(null, true);
}
asyncWhile();

}).on('data', function(data) {
if (!data || !Buffer.isBuffer(data) || data.length <= 0 ){
Expand Down