Строки NodeJS из клиентских сообщений - PullRequest
0 голосов
/ 09 июня 2011

Как вы можете извлечь строки из сообщений в NodeJS? В частности, я изменяю простой пример чата, чтобы принимать конкретные команды от клиентов.

Пример:

sock.on('connection', function(client){
    var s = the string in client.message...
    if(s == "specific string"){
        //do this
    }
    else{
        //do that
    }
});

Я новичок в NodeJS, и до сих пор документация была очень полезной. Если я подхожу к этому неправильно, я определенно буду благодарен за альтернативные решения. Спасибо.

Редактировать 1: инициализация сервера

serv = http.createServer(function(req, res){
    res.writeHead(200, {'Content-Type': 'text/html'});
    // read index.html and send it to the client
    var output = fs.readFileSync('./index.html', 'utf8');
    res.end(output);
});
// run on port 8080
serv.listen(8080);

Редактировать 3: Я понимаю, что я не был достаточно конкретен, извините. Вот ссылка на учебник, по которому я следую: http://spechal.com/2011/03/19/super-simple-node-js-chatroom/.

В частности, я хотел бы создать чат, предоставленный в руководстве (что я смог сделать), а затем проверить сообщения, которые люди передают друг другу, чтобы увидеть, содержат ли они определенные строки.

Например, если клиент в комнате чата отправил строку «альфа» (вводит альфа, нажимает ввод), эта строка будет транслироваться всем другим клиентам, а сервер ответит передачей строки «Альфа получена». «. всем клиентам, а также. Моя точная проблема (насколько мне известно) заключается в том, что я не могу выполнить какое-либо сравнение строк с сообщениями, которые получает мой прослушиватель событий. Можно ли извлечь текст, введенный участниками чата, из их сообщений?

1 Ответ

3 голосов
/ 09 июня 2011

Где находится ваш обработчик sock.on ('data', function (data) {}) '? Я думаю, что пример HTTP на самом деле то, что вы ищете, перечислены ниже.

Пример (для TCP-сервера):

var server = net.Server(function(socket) {
  socket.setEncoding('ascii');

  socket.on('data', function(data) {
    // do something with data
  });

  socket.on('end', function() {
    // socket disconnected, cleanup
  });

  socket.on('error', function(exception) {
    // do something with exception
  });
});
server.listen(4000);

Пример для HTTP-сервера:

var http = require('http');
var url = require('url');
var fs = require('fs');

var server = http.createServer(function (req, res) {

  // I am assuming you will be processing a GET request
  // in this example. Otherwise, a POST request would
  // require more work since you'd have to look at the
  // request body data.

  // Parse the URL, specifically looking at the
  // query string for a parameter called 'cmd'
  // Example: '/chat?cmd=index'
  var url_args = url.parse(req.url, true);

  // Should have error checking here...
  var cmd = url_args.query.cmd;

  res.writeHead(200, {'Content-Type': 'text/html'});

  var output;
  if (cmd == "index") {
    // read index.html and send it to the client
    output = fs.readFileSync('./index.html', 'utf8');
  } else if (cmd.length > 0) {
    output = "cmd was not recognized.";
  } else {
    output = "cmd was not specified in the query string.";
  }
  res.end(output);
});

server.listen(8080);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...