當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript websocket.connection類代碼示例

本文整理匯總了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);
		});
	}
開發者ID:omochi,項目名稱:national-economy,代碼行數:22,代碼來源:SocketImpl.ts

示例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;
            });
        });
開發者ID:Covistra,項目名稱:cmbf2,代碼行數:14,代碼來源:stream-platform-client.ts

示例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);
            });

        });
開發者ID:Covistra,項目名稱:cmbf2,代碼行數:18,代碼來源:stream-platform-client.ts

示例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);
//.........這裏部分代碼省略.........
開發者ID:AsamK,項目名稱:Tarot,代碼行數:101,代碼來源:Orga.ts

示例5: sendJoueurs

 function sendJoueurs(con?: WebsocketConnection) {
     if (!con) {
         return;
     }
     con.sendUTF(JSON.stringify(
         ServerResponses.makeJoueurJoint(getNomJoueurs(), joueurAttendant.map(j => j.guid), chatAttendant)));
 }
開發者ID:AsamK,項目名稱:Tarot,代碼行數:7,代碼來源:Orga.ts

示例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));
                }

            };
開發者ID:Covistra,項目名稱:cmbf2,代碼行數:13,代碼來源:response-handler.ts

示例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
        }
    }
}
開發者ID:KewlStatics,項目名稱:SocialMedia-bot,代碼行數:24,代碼來源:main.ts


注:本文中的websocket.connection類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。