我拿了聊天示例并尝试通过服务器上的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>
但到目前为止我还没有看到问题出在哪里,所以请耐心等待我的模糊问题,因为我不确切地知道问题所在,有人能指出我或解释一下我明显做错了吗?
答案 0 :(得分:1)
您的问题可能是prova
是undefined
,但您正试图推动它。
export class HomePage {
socket:any
chat_input:string;
chats = [];
prova = []; // set to an array