本文整理匯總了TypeScript中websocket.connection類的典型用法代碼示例。如果您正苦於以下問題:TypeScript connection類的具體用法?TypeScript connection怎麽用?TypeScript connection使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了connection類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: constructor
constructor(connection: WebSocketConnection) {
this.connection_ = connection;
this.onMessage_ = new Subject<SocketMessage>();
this.onClose_ = new Subject<void>();
this.onError_ = new Subject<Error>();
connection.on("message", (message: WebSocketMessage) => {
if (message.type == "utf8") {
this.onMessage_.onNext({ string: message.utf8Data });
} else if (message.type == "binary") {
this.onMessage_.onNext({ data: bufferToData(message.binaryData) });
} else {
throw new Error(`invalid message ${message.type}`);
}
});
connection.on("close", (code: number, desc: string) => {
this.onClose_.onNext(null);
});
connection.on("error", (error: Error) => {
this.handleError(error);
});
}
示例2:
return this.conn.then((connection: WebSocketConnection) => {
// Send the request to the stream platform gateway
connection.sendBytes(this.protocolHandler.encode(request));
// Register our response handler
return this.registerResponseHandler(connection, request).then((response: ServiceResponse ) => {
// Remove this response handler
this.removeResponseHandler(request);
return response;
});
});
示例3: ResolveServiceRequest
return this.conn.then((connection: WebSocketConnection) : P<ServiceProxy> => {
let request : ServiceRequest = new ResolveServiceRequest(query);
// Send the request to the stream platform gateway
connection.sendBytes(this.protocolHandler.encode(request));
// Register our response handler
return this.registerResponseHandler(connection, request).then((response: ServiceResponse ) : ServiceProxy => {
console.log("Received response", response);
// Remove this response handler
this.removeResponseHandler(request);
// Create our service proxy
return new StreamServiceProxy(this, connection, response.data);
});
});
示例4: return
return (m: Action) => {
if (jeu && jeu.invalid) {
jeu = null;
moi = null;
}
switch (m.type) {
case Actions.JOINDRE: {
if (joueurAttendant.length >= 5) {
console.warn('too many players');
// TODO error
return;
}
const nomJoueur = m.nomJoueur.substring(0, 50).replace(/,/g, ' ');
if (joueurAttendant.findIndex(j => j.nomJoueur === nomJoueur) !== -1) {
console.warn('player name already exists');
// TODO error
return;
}
const newGuid = m.guid;
joueurAttendant.push({
connection,
guid: newGuid,
nomJoueur,
startCallback: () => {
jeu = knownGuids[newGuid].jeu;
moi = joueurAttendant.findIndex(j => j.guid === newGuid);
},
});
guid = newGuid;
joueurAttendant.forEach(({connection: joueurConnection}) => sendJoueurs(joueurConnection));
break;
}
case Actions.REJOINDRE: {
const index = joueurAttendant.findIndex(j => j.guid === m.guid);
if (index !== -1) {
const newGuid = m.guid;
joueurAttendant[index].connection = connection;
joueurAttendant[index].startCallback = () => {
jeu = knownGuids[newGuid].jeu;
moi = joueurAttendant.findIndex(j => j.guid === newGuid);
};
guid = newGuid;
sendJoueurs(connection);
} else if (m.guid in knownGuids) {
guid = m.guid;
moi = knownGuids[guid].joueur;
jeu = knownGuids[guid].jeu;
jeu.connections[moi] = connection;
connection.sendUTF(JSON.stringify(ServerResponses.makeRejoindu(moi)));
sendToAll(jeu);
} else {
// TODO error
return;
}
break;
}
case Actions.QUITTER: {
const index = joueurAttendant.findIndex(j => j.guid === guid);
if (index === -1) {
return;
}
joueurAttendant.splice(index, 1);
joueurAttendant.forEach(({connection: joueurConnection}) => sendJoueurs(joueurConnection));
sendJoueurs(connection);
break;
}
case Actions.START:
if (joueurAttendant.length < 3) {
console.warn('not enough player');
// TODO error
return;
}
const newJeu = Jeu.creeNouveauJeu(getNomJoueurs());
jeux.push(newJeu);
joueurAttendant.forEach(({guid: joueurGuid, connection: joueurConnection}, i) => {
knownGuids[joueurGuid] = {jeu: newJeu, joueur: i};
if (joueurConnection != null) {
newJeu.connections[i] = joueurConnection;
}
newJeu.guids.push(joueurGuid);
});
joueurAttendant.forEach(({startCallback}, i) => {
if (startCallback != null) {
startCallback();
}
});
joueurAttendant = [];
newJeu.data.chat = chatAttendant;
chatAttendant = '';
sendToAll(newJeu);
jeu = newJeu;
break;
case Actions.COUPE:
if (!jeu) {
console.warn('Action non permis, jeu pas commencé');
return;
}
jeu.coupe(m.nombre);
sendToAll(jeu);
//.........這裏部分代碼省略.........
示例5: sendJoueurs
function sendJoueurs(con?: WebsocketConnection) {
if (!con) {
return;
}
con.sendUTF(JSON.stringify(
ServerResponses.makeJoueurJoint(getNomJoueurs(), joueurAttendant.map(j => j.guid), chatAttendant)));
}
示例6: resolve
var h = (msg) => {
console.log("Receive message", msg.type);
// Disconnect our listener
this.conn.removeListener('message', h);
if(msg.type === 'binary') {
console.log("Received binary message of len = ", msg.binaryData.length);
var response = this.protocolHandler.decode(msg.binaryData);
resolve(new BaseServiceResponse(response));
}
};
示例7: send
export function send(data: string) {
if (!data || !Connection.connected) return false
const now = Date.now()
if (now < lastSentAt + MESSAGE_THROTTLE - 5) {
queue.push(data)
if (!dequeueTimeout) {
dequeueTimeout = setTimeout(dequeue, now - lastSentAt + MESSAGE_THROTTLE)
}
return false
}
dsend(data)
Connection.send(data)
lastSentAt = now
if (dequeueTimeout) {
if (queue.length) {
dequeueTimeout = setTimeout(dequeue, MESSAGE_THROTTLE)
} else {
dequeueTimeout = null
}
}
}