[英]I can`t send my object with socket.io function socket.emit() to node server. How can I take this data with functions?
我有一個點 object,我想用 socket.emit('add_dot_init', new Dot()) 發送到節點服務器但是當我發送這個數據時,我的服務器像這樣得到這個 object { x: 15, y: 75, alp: 3.487639104390228 }
我想做的事? 這個點 object 將是一個客戶端 object。客戶端將控制這個點。所以我從服務器取回這些數據並在這個 class 中運行 move() function,例如:
dots.push(new Dot())
dots[0].move();
但我無法從服務器收回這個 object 因為它來了
{ x: 15, y: 75, alp: 3.487639104390228 }
如何使用函數獲取這些數據?
class Dot{
constructor(){
this.x = 15;
this.y = 75;
this.alp = random(51)
}
move(){
dot.x +=5;
}
show(){
fill(0);
ellipse(this.x,this.y,30,30);
}
}
通信是通過 websocket 完成的,因此在幕后,您只是將 JSON 字符串發送到服務器並返回給客戶端。 這意味着無論何時將 Dot 實例傳輸到 websocket,它都會被序列化和反序列化為常規的 javascript object,而無需任何自定義方法。 如果你想在服務器或客戶端上使用 The Dot,你將不得不使用一個構造函數,該構造函數將根據它從 websocket 接收到的普通 object 對其進行初始化:
class Dot{
constructor(dot){
if (dot) {
this.x = dot.x;
this.y = dot.y;
this.alp = dot.alp;
} else {
this.x = 15;
this.y = 75;
this.alp = random(51)
}
}
move(){
dot.x +=5;
}
show(){
fill(0);
ellipse(this.x,this.y,30,30);
}
}
在服務器/客戶端上收到消息后,只需調用const dot = new Dot(response);
其中response
是您通過 websocket 收到的值,那么您可以使用dot.move
方法
我有一個點 object,我想用 socket.emit('add_dot_init', new Dot()) 發送到節點服務器但是當我發送這個數據時,我的服務器得到這個 object 像這樣{ x: 15, y: 75, alp: 3.487639104390228 }
我想做的事? 這個點 object 將是一個客戶端 object。 並且客戶端將控制這些點..所以我從服務器取回這些數據並在這個 class 中運行 move() function ,例如:
dots.push(new Dot())
dots[0].move();
但我不能從服務器收回這個 object 因為它來了
{ x: 15, y: 75, alp: 3.487639104390228 }
如何使用函數獲取這些數據?
class Dot{
constructor(){
this.x = 15;
this.y = 75;
this.alp = random(51)
}
move(){
dot.x +=5;
}
show(){
fill(0);
ellipse(this.x,this.y,30,30);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.