2017-04-18 14 views
1

私は私と私の質問に裸でください、私は非常に角度、typescriptとイオン2に新しいですが、Socket.ioには、基本的に私はチャットの例を取っ​​て、Socket.io経由で私のアプリで他のものを表示しようとするサーバーからの値を表示する正しい方法は何ですか?

var socket = require('socket.io'), 
    http = require('http'), 
    server = http.createServer(), 
    socket = socket.listen(server); 
    var msgProva = 2; 

socket.on('connection', function(connection) { 
    console.log('User Connected'); 
    socket.emit('prova', msgProva); //2 


    connection.on('message', function(msg){ 
     socket.emit('message', msg); 
    }); 

}); 

server.listen(3000, function(){ 
    console.log('Server started'); 
}); 

:サーバーが、私はこの振る舞いを把握することはできません、私は最高の私ができるように、サーバー側の部分に私は私のクライアントアプリケーションに単純な整数値をプッシュしようとして説明しようあなたが見ることができるように、私は単純な "2"をプッシュしようとしています。

これは私のhome.tsです:

import { Component } from '@angular/core'; 

import { NavController } from 'ionic-angular'; 
import * as io from 'socket.io-client'; 


@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 
    socket:any 
    chat_input:string; 
    chats = []; 
    prova; 


    constructor(public navCtrl: NavController) { 
     this.socket = io('http://localhost:3000'); 

    this.socket.on('message', (msg) => { 
    console.log("message", msg); 
    this.chats.push(msg); 
    }); 

    this.socket.on('prova', (msgProva) => { 
     console.log("msgProva", msgProva); 
     this.prova.push(msgProva); 
    }); 
    } 

    send(msg) { 
     if(msg != ''){ 
      this.socket.emit('message', msg); 
     } 
     this.chat_input = ''; 
    } 
} 

は、だから私は "PROVA" イベントで、私は、サーバーからの私の "2" をreciveすることを期待しています。

そして、これは私のhome.htmlです:

<ion-content padding> 
    <ion-item> 
    <ion-icon name="logo-twitter" item-left></ion-icon> 
    Followers 
    <ion-badge color="secondary">{{prova}}</ion-badge> 
    </ion-item> 

    <ion-list> 
     <ion-item *ngFor="let message of chats">{{message}}</ion-item> 
    </ion-list> 

    <ion-item> 
     <ion-input type="text" [(ngModel)]="chat_input" placeholder="Enter message"></ion-input> 
    </ion-item> 

    <button ion-button block (click)="send(chat_input)">Send</button> 
</ion-content> 

これまでのところ、私は、問題がある場所を確認することはできませんので、私は正確に分からないように、私の漠然とした質問で我慢してください。どこに問題があるのですか、誰かが私を指摘したり、私が明らかに間違っていることを説明することができますか?

答えて

1

provaundefinedですが、まだプッシュしようとしている可能性があります。

export class HomePage { 
    socket:any 
    chat_input:string; 
    chats = []; 
    prova = []; // set to an array 
+0

私は、それはあなたのHTMLファイルで{{メッセージ}} – FabioEnne

+0

にも値「2」を出力するように私はすでに、私の問題は、HTMLファイル内にあることを考えるthat..I'mを試してみましたと思いますあなたは 'prova'をエコーアウトし、'チャット 'を通してループしています。あなたのTSファイルでは、 'this.prova'と' this.chats'の両方に値を 'push 'しようとしています。 私が知る限り、 'message'の「2」は配列にプッシュしてループしているので、正しいと言えます。 – TheBrockEllis

+0

@SteamDev私の再生で遅れて申し訳ありません、あなたは正しい配列を初期化していませんでしたが、数字を押すことは可能でしたが、明らかにthis.prova.pushは配列をプッシュできます。配列の代わりに1つの変数を渡す方法?? – FabioEnne

関連する問題