Operation was rejected (seq but not src). Trying to rollback change locally.
- Dominant language
- JavaScript
- Stars
- 5k
- Forks
- 454
- PR merge metrics
- No merged PRs in 30d
Description
Hi everyone!
Trying to use ShareJs, but have a problem with submitOp.
Model change, but new value is not set in mongoDB.
I have a warning message:
"Operation was rejected (seq but not src). Trying to rollback change locally."
What am i doing wrong?
client:
``` javascript
var socket = new BCSocket('http://localhost:8002/channel', {reconnect: true});
var share = new sharejs.Connection(socket);
var doc = share.get('lists', '1433606385077');
doc.subscribe(function(){
console.log('onChange:', doc.getSnapshot());
});
doc.whenReady(function(){
console.log('onReady: ', doc.getSnapshot());
doc.submitOp([{p:['title', 4], si: 'test'}]);
});
```
server:
``` javascript
(function(){
var Duplex = require('stream').Duplex;
var browserChannel = require('browserchannel').server
var backend = require('livedb').client(require('livedb-mongo')(dbUrl));
var share = require('share').server.createClient({backend: backend});
var bodyParser = require('body-parser');
var core = require('express')();
var server = createServer();
var dbUrl = 'mongodb://localhost:27017/todoList'
core.use(bodyParser.json());
core.use(bodyParser.urlencoded({
extended: true
}));
core.use(function(req, res, next) {
var headers = {
'Cache-Control' : 'max-age:120'
};
if(req.headers.origin){
res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, X-PINGOTHER');
res.setHeader('Access-Control-Max-Age', 86400);
}
next();
});
var mongodb = require('mongodb').connect(dbUrl, function(err, db){
var usersAPI = new require('./api/users')(core, db);
var listsAPI = new require('./api/lists')(core, db, backend);
core.use(browserChannel({webserver: server}, function(client){
console.log('New session: ' + client.id +' from ' + client.address);
var stream = new Duplex({objectMode: true});
listsAPI(client);
stream._read = function() {};
stream._write = function(chunk, encoding, callback) {
if(client.state !== 'closed') {
client.send(chunk);
}
callback();
};
client.on('message', function(data) {
stream.push(data);
});
client.on('close', function(reason) {
stream.push(null);
});
stream.on('end', function() {
client.close();
});
return share.listen(stream);
}));
});
function createServer(){
return core.listen(8002, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Server started on', host + ':' + port);
});
}
})();
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.