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

时间:2017-04-18 15:44:07

标签: angularjs angular typescript socket.io ionic2

我拿了聊天示例并尝试通过服务器上的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"。

这是我的家。:

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"来自服务器。

这是我的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 个答案:

答案 0 :(得分:1)

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

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