【发布时间】:2016-01-25 22:41:23
【问题描述】:
当我的套接字 io 客户端连接到服务器时,它会执行两次 double connection
这是一个 Angular 2 项目,所以我在 typescript 中编码,如您所见:
class Server {
private app = express();
private httpServer = http.createServer(this.app);
private io = sio.listen(this.httpServer);
private users = Array<User>();
constructor() {
//routage sur index.html
this.app.get('/',(req, res) => {
res.sendFile(__dirname + '/index.html');
});
//ajout des dépendences
this.app.use(express.static(__dirname + '/'));
//connexion & deconnexion
this.io.on('connection', (socket: SocketIO.Socket) => {
var date = new Date();
console.log(date+' : a user connected '+socket.id);
socket.on('broadcast users srv',(user) => {
var b = new Branch();
var n = new NVNode(b);n.image_path = user._node._image_path;
var u = new User(user._mail,user._id,n);
u.socket = socket.id;
this.users.push(u);
socket.broadcast.emit('broadcast users clt',u)
});
});
}
}
我试着这样编码:
class Server {
private app = express();
private httpServer = http.createServer(this.app);
private io = sio.listen(this.httpServer);
private users = Array<User>();
private s : SocketIO.Socket
constructor() {
//routage sur index.html
this.app.get('/',(req, res) => {
res.sendFile(__dirname + '/index.html');
});
//ajout des dépendences
this.app.use(express.static(__dirname + '/'));
//connexion & deconnexion
this.io.on('connection', (sock: SocketIO.Socket) => {
var date = new Date();
console.log(date+' : a user connected '+sock.id);
this.s = sock;
});
this.s.on('broadcast users srv',(user) => {
var b = new Branch();
var n = new NVNode(b);n.image_path = user._node._image_path;
var u = new User(user._mail,user._id,n);
u.socket = this.s.id;
this.users.push(u);
this.s.broadcast.emit('broadcast users clt',u)
});
}
}
但不幸的是,它向我显示了这个错误: error server
服务器告诉该值未初始化==>“未定义”
我真的不知道该怎么办:( 如果你有想法!
【问题讨论】:
标签: socket.io typescript angular