什么是从服务器显示值的正确方法?

什么是从服务器显示值的正确方法?

问题描述:

请与我和我的问题裸露,我很新的角度,打字稿及离子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” 事件中,我recive我的 “2” 的服务器。

,这是我的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> 

但到目前为止,我没有看到问题的所在,所以请耐心等待我的含糊不清的问题,因为我不知道到底问题出在哪里,任何人都可以指出我或解释我明显做错了什么?

您的问题可能是provaundefined,但你正在试图推到它。

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

我想我已经尝试that..I'm想,我的问题是在HTML文件中,它打印的价值“2”也是在{{消息}} – FabioEnne

+0

在HTML文件中,你试图回声'prova'并通过'聊天'循环。在你的TS文件中,你试图把一个值push到this.prova和this.chats上。 至于我可以告诉大家,在看到“2”'message'是正确的,因为你已经推到数组,你遍历它。 – TheBrockEllis

+0

@SteamDev好了,对不起,我的重播延迟,你是对的,我没有initialiazed PROVA作为一个数组,我虽然是可能的推号,但显然this.prova.push只能推阵列..有一种只传递一个变量而不是数组的方法? – FabioEnne