当前位置: 首页>>代码示例>>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;未经允许,请勿转载。