var ws = new WebSocket('ws://echo.websocket.org/');
ws.send('Hello');
ws.onopen = function(event) { ... };
ws.onclose = function(event) { ... };
ws.onmessage = function(event) { ... };
ws.onerror = function(event) { ... };
service ip6tables save
и перегрузили тазик. Чтобы проверить хоть в нем ли проблема, отключите его на время через service ip6tables stop
проверьте в браузере и потом включите через service ip6tables start
и вовсе убрать фаервол из актозагрузки можно через chkconfig ip6tables off
, а вернуть через chkconfig ip6tables on
. Попробуйте так же правило такое: iptables -A INPUT -p tcp -m tcp --dport 8888 -j ACCEPT
Но еще нужно проверить, на тот ли IP (hostname) делает bind нодовский сервер, через функцию server.listen(port, [ip])
. Если поставить IP "0.0.0.0"
, то он сядет на все интерфейсы. Если не поможет все это, то проверять нужно фаервол у датацентра/хостинга, возможно там есть панель управления, в которой можно пробросить порты во внешний мир. var storage = {};
module.exports = storage;
storage.read = function(name, callback) {
...
callback(data); // отдаст data или null
};
storage.write = function(name, data, callback) {
...
callback(); // без папаметров
};
storage.exists = function(name, callback) {
...
callback(exists); // отдаст true/false
};
var storage = require('storage');
var processing = {};
module.exports = processing;
processing.parse = function(data) {
...
// тут можем парсить и вызывать storage API
return parsedStructures;
};
var storage = require('storage');
var processing = require('processing');
// далее можем использовать оба API storage и processing
storage.exists(name, function(exists) {
if (exists) {
// если файл есть, то читаем
storage.read(name, function(data) {
// и теперь его парсим
var matrix = processing.parse(data);
// делаем что нужно
});
} else {
// если нету, то создаем дэфолтную структуру
var matrix = { default: "structure" };
storage.write(name, matrix, function() {
// и пишем ее на диск
});
}
});
//do something when app is closing
process.on('SIGINT', drainArray); // выход по Ctrl-C из консоли
process.on('SIGTERM', drainArray); // завершение через kill
process.on('exit', drainArray); // выход по собственному желанию
process.on('uncaughtException', drainArray); // если свалился
var drainArray = function() {
if (!process.flagExit) {
process.flagExit = true;
// отправка данных
}
};
npm install mysql
npm install mysql-utilities
var http = require('http');
http.createServer(function (req, res) {
if (req.method === 'GET' && req.url === '/read') {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
} else res.end('You should open /read');
}).listen(81);
module.exports = function(client, callback) {
dbImpress.users.find({ group: client.fields.group }).toArray(function(err, nodes) {
callback(nodes);
});
}
[
{ "login": "Vasia Pupkin", "password": "whoami", "group": "users" },
{ "login": "Marcus Aurelius", "password": "tomyself", "group": "users" }
]