我使用node.js net
库作为套接字。
我有一个连接到主机和端口的socket
变量:
let socket;
socket = net.createConnection( connectOpts, () => {
socket.on( "data", () => console.log("Hello World"));
} );
但是,稍后,我想更改侦听器功能。为此,我做了:
socket.on( "data", () => console.log("Hello MARS"));
问题是当mu socket获取数据时,我看到Hello World
和Hello MARS
都打印出来了!
如何将侦听器功能从Hello World
更改为Hello MARS
?
答案 0 :(得分:1)
不要忘记先删除旧的侦听器。
socket.removeListener("data", function(){
socket.on( "data", () => console.log("Hello MARS"));
});
如果您想要接收简单事件然后删除监听器, socket.once("data", callback);
也可用。