收到nodejs事件时执行一个函数

时间:2018-10-15 07:56:17

标签: javascript node.js

我可能会缺少一些基本知识,但这是我的目标:我有一个基于此处Instant Chat for drupal

的教程的小型即时聊天示例。

原理是连接到基本上只是广播接收到的所有消息的nodejs服务器。

我在客户端(在drupal tpl.php文件中)具有此功能:

(function($) {
  var myNick = 'me';
  var socket = io.connect('http://<?php print $_SERVER['SERVER_ADDR'] ?>:8081');

  socket.on('connect', function() {
    $('#chat').addClass('connected');
  });

  socket.on('user message', message);

  function message(from, msg) {
    if (msg == 'GO') { 
      ** EXECUTE A FUNCTION HERE **
    } else { //display the message and sender
      $('#lines').append($('<p>').append(from, msg));
    }
  }

  $(document).ready(function() {

    $('#send-message').submit(function() {
      message(myNick, $('#messageinput').val());
      socket.emit('user message', $('#messageinput').val());
      clear();
      $('#lines').get(0).scrollTop = 10000000;
      return false;
    });

    function clear() {
      $('#message').val('').focus();
    };

  });
})(jQuery);

当我发送一条内容= GO的消息时,将执行Submit,然后调用message(..,..)函数,并且我的特定函数将正确执行。

但是当我收到GO消息时,socket.on事件触发,将调用message()函数,但是我的特定函数未执行。

任何想法我该如何解决?

非常感谢您的帮助。 迈克尔。

0 个答案:

没有答案