Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用websocket进行backbone.js同步_Javascript_Backbone.js_Websocket - Fatal编程技术网

Javascript 使用websocket进行backbone.js同步

Javascript 使用websocket进行backbone.js同步,javascript,backbone.js,websocket,Javascript,Backbone.js,Websocket,我正在尝试使用WebSocket替换Backbone.sync方法 然后我创建了三个名为sample1、sample2和sample3的“Sample”模型实例,并调用fetch()方法。每个请求都已成功发送到服务器 但是,当响应数据来自服务器时,每个响应都设置为sample1。换句话说,backbone.js触发了更改事件,只有sample1实例捕捉到它 我知道有一个很好的库名为backbone.WS。然而,我想知道为什么下面的代码不能正常工作。请给我任何意见 $(文档).ready(函数()

我正在尝试使用WebSocket替换Backbone.sync方法

然后我创建了三个名为sample1、sample2和sample3的“Sample”模型实例,并调用fetch()方法。每个请求都已成功发送到服务器

但是,当响应数据来自服务器时,每个响应都设置为sample1。换句话说,backbone.js触发了更改事件,只有sample1实例捕捉到它

我知道有一个很好的库名为backbone.WS。然而,我想知道为什么下面的代码不能正常工作。请给我任何意见

$(文档).ready(函数(){
var-ws;
var url=ws://localhost:8080/application/sample;
Backbone.sync=函数(方法、模型、选项){
var data=JSON.stringify({
“方法”:方法,
“数据”:model.attributes}
);
如果(ws==null){
log(“创建到服务器的新连接”);
ws=新的WebSocket(url);
log(“绑定回调方法”);
ws.onopen=onopen;
ws.onmessage=onmessage;
ws.onclose=onclose;
ws.onerror=onerror;
}
函数发送(消息){
//等待,直到套接字的状态尚未就绪,并在其处于。。。
waitForSocketConnection(ws,函数(){
日志(“消息已发送!!!”;
发送(消息);
});
}
//使函数等待连接完成。。。
函数waitForSocketConnection(套接字、回调){
设置超时(
函数(){
if(socket.readyState==1){
console.log(“建立连接”)
if(回调!=null){
回调();
}
返回;
}否则{
日志(“正在等待连接…”)
waitForSocketConnection(套接字、回调);
}
},10);//等待5毫秒,等待连接。。。
}
开启功能(事件){
console.info(“建立到”+url的连接”);
};
函数onMessage(事件){
console.info(“收到消息!”);
var message=JSON.parse(event.data);
log(“model:+JSON.stringify(model.attributes));
model.set(消息);
};    
函数onClose(事件){
console.log(事件代码);
};
函数onError(){
console.warn(“您的websocket出错”);
}
发送(数据);
log(“请求被发送到服务器”);
选项。成功(消息);
};
var Sample=Backbone.Model.extend({
默认值:{
id:0,
名称:“默认值”
}
});
var sample1=新样本({id:1});
var sample2=新样本({id:2});
var sample3=新样本({id:3});
sample1.fetch();
sample2.fetch();
sample3.fetch();
样本1.on(“变更”,功能(模型){
log(“示例1中的--onChange方法”);
});
样本2.关于(“变更”,功能(模型){
log(“示例2中的+++onChange方法”);
});
样本3.on(“变更”,功能(模型){
log(“==示例3中的onChange方法”);
});
}