이벤트에 기능 할당

Wjdavis5

dgram obj에 대한 이벤트에 할당하려는 함수가있는 클래스가 있습니다.

MessageServer.prototype.OnBind = function (datagram) {
    var address = datagram.address();
    console.log("server listening " + address.address + ":" + address.port);
};

datagram.on("listening",
    function() {
        OnBind(this);
    });

난 노력 했어:

  • OnBind가 정의되지 않은 위
  • this.OnBind, 정의되지 않음 b / c 이것은 dgram을 나타냅니다.
  • 함수가 아닌 MessageServer.OnBind
  • datagram.on ( "듣기", this.OnBind); 하지만 그것은 dgram에 전달되지 않습니다
  • datagram.on ( "듣기", this.OnBind (this)); 그러나 그것은 MessageServer에서 전달됩니다.

나는 이것이 간단하다고 생각하고 난 단지 어렵다 ... 어떻게 그 이벤트 핸들러에 함수를 할당합니까?

편집-전체 모듈

var Dgram = require("dgram");
var MessageQueue = require("./MessageQueue");
var Message = require("./Message");

function MessageServer(name, listenPort, messageQueue, bindCallBack, messageReceiveCallBack,closeCallback,errorCallback) {
    this.Name = name;
    this.MessageQueue = messageQueue;
    this.Port = listenPort;
    var datagram = Dgram.createSocket("udp4");
    MessageServer.prototype.Bind = function() {
        datagram.bind(this.Port);
    };
    MessageServer.prototype.OnReceive = function(message, info) {
        var msg = new Message(message, info.address, info.port);
        MessageQueue.Add(msg);
    };

    MessageServer.prototype.OnBind = function (datagram) {
        var address = datagram.address();
        console.log("server listening " + address.address + ":" + address.port);
    };

    datagram.on("listening",this.OnBind(datagram));
    datagram.on("message",
        function(msg,info) {
            OnReceive(msg, info);
        });
    datagram.on("error", function(err) {
        console.log(this.Name + " error: " + error);
    });
    datagram.on("close", function() {
        console.log("server closing: " + Name);
    }); 
    }

module.exports = MessageServer;
Willem D' Haeseleer

코드와 관련된 몇 가지 문제, 문서를 참조로 사용하여 약간 정리했습니다.
여기를 참조하십시오 : https://nodejs.org/api/dgram.html

커프에서 완전히 벗어 났고 코스에서 테스트되지 않았습니다. 하지만 어디서부터 시작해야할지 알 수있을 것입니다.

MessageServer여기에 클래스입니다, 그것의 메서드에서 논리를 구현하십시오. 그런 다음 인스턴스화하고 호출 Bind하여 시작하십시오.
(아마이 인터페이스를 개선 할 여지가있을 것입니다.)

var myMessageServer = new MessageServer('MyServer', 8888, new MessageQueue(), etc...);
myMessageServer.Bind();

-

var Dgram = require("dgram");
var Message = require("./Message");

function MessageServer(name, listenPort, messageQueue, bindCallBack, messageReceiveCallBack, closeCallback, errorCallback) {
    this.name = name;
    this.messageQueue = messageQueue;
    this.port = listenPort;
    this.server = Dgram.createSocket("udp4");

    this.server.on("listening", this.OnBind.bind(this));
    this.server.on("message", this.OnReceive.bind(this));
    this.server.on("error", function (err) {
        console.log(this.name + " error: " + error);
        this.server.close();
    }.bind(this));
    this.server.on("close", function () {
        console.log("server closing: " + name);
    });
}

MessageServer.prototype.Bind = function () {
    this.server.bind(this.port);
};
MessageServer.prototype.OnReceive = function (message, info) {
    var msg = new Message(message, info.address, info.port);
    this.messageQueue.Add(msg);
};

MessageServer.prototype.OnBind = function () {
    var address = this.server.address();
    console.log("server listening " + address.address + ":" + address.port);
};

module.exports = MessageServer;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

기능에 속성 할당

분류에서Dev

메서드에 이벤트 처리기 할당

분류에서Dev

기능에 할당되지 않은 값

분류에서Dev

클래스 멤버에 기능 할당

분류에서Dev

Javascript의 값에 기능 할당

분류에서Dev

다른 이름에 물고기 기능 할당

분류에서Dev

postgresql : 이벤트에서 기간 분할

분류에서Dev

arb 노드와 선택기에 이벤트를 추가하는 방법처럼 드래그 가능을 할당 할 수 있습니까?

분류에서Dev

OpenLayers 3에서 기능을 선택할 때 이벤트가 있습니까?

분류에서Dev

InstallShield 2015의 기능 이벤트에 액세스 할 수 없습니다.

분류에서Dev

이벤트 처리기를 할당하는 WPF 창

분류에서Dev

기능이있는 그룹에 항목 할당

분류에서Dev

할당 중에 기능이 변경됩니까?

분류에서Dev

ImageButton.Click에 이벤트 할당

분류에서Dev

이벤트에 Func 할당 C #

분류에서Dev

다중 출력 기능에 대한 단일 출력을 새 기능에 할당

분류에서Dev

코드에서 DataTemplate에 대한 이벤트 처리기를 할당하는 방법은 무엇입니까?

분류에서Dev

클릭 이벤트에서 사용하기 위해 .hover ()의 변수에 요소의 ID 할당

분류에서Dev

ASP.NET에서 동적으로 생성 된 HTML 단추에 이벤트 수신기 할당

분류에서Dev

couchbase 이벤트 기능을 배포 할 수 없습니다.

분류에서Dev

Lua에서 전역 변수에 기능 할당

분류에서Dev

할당 이벤트 처리

분류에서Dev

이미지 기능을 사용한 색상 할당

분류에서Dev

이 기능 할당은 어떻게 작동합니까?

분류에서Dev

변수 마지막 요소의 기능에 특정 값 할당

분류에서Dev

.text 섹션에 쓰기 가능한 메모리 할당

분류에서Dev

jQuery-라디오 입력에 클릭 기능 할당

분류에서Dev

모든 사건에 할당 된 유사한 VBA 코드 기능

분류에서Dev

ES6의 클래스에 여러 기능 할당

Related 관련 기사

  1. 1

    기능에 속성 할당

  2. 2

    메서드에 이벤트 처리기 할당

  3. 3

    기능에 할당되지 않은 값

  4. 4

    클래스 멤버에 기능 할당

  5. 5

    Javascript의 값에 기능 할당

  6. 6

    다른 이름에 물고기 기능 할당

  7. 7

    postgresql : 이벤트에서 기간 분할

  8. 8

    arb 노드와 선택기에 이벤트를 추가하는 방법처럼 드래그 가능을 할당 할 수 있습니까?

  9. 9

    OpenLayers 3에서 기능을 선택할 때 이벤트가 있습니까?

  10. 10

    InstallShield 2015의 기능 이벤트에 액세스 할 수 없습니다.

  11. 11

    이벤트 처리기를 할당하는 WPF 창

  12. 12

    기능이있는 그룹에 항목 할당

  13. 13

    할당 중에 기능이 변경됩니까?

  14. 14

    ImageButton.Click에 이벤트 할당

  15. 15

    이벤트에 Func 할당 C #

  16. 16

    다중 출력 기능에 대한 단일 출력을 새 기능에 할당

  17. 17

    코드에서 DataTemplate에 대한 이벤트 처리기를 할당하는 방법은 무엇입니까?

  18. 18

    클릭 이벤트에서 사용하기 위해 .hover ()의 변수에 요소의 ID 할당

  19. 19

    ASP.NET에서 동적으로 생성 된 HTML 단추에 이벤트 수신기 할당

  20. 20

    couchbase 이벤트 기능을 배포 할 수 없습니다.

  21. 21

    Lua에서 전역 변수에 기능 할당

  22. 22

    할당 이벤트 처리

  23. 23

    이미지 기능을 사용한 색상 할당

  24. 24

    이 기능 할당은 어떻게 작동합니까?

  25. 25

    변수 마지막 요소의 기능에 특정 값 할당

  26. 26

    .text 섹션에 쓰기 가능한 메모리 할당

  27. 27

    jQuery-라디오 입력에 클릭 기능 할당

  28. 28

    모든 사건에 할당 된 유사한 VBA 코드 기능

  29. 29

    ES6의 클래스에 여러 기능 할당

뜨겁다태그

보관