Articles of 信号

WebRTC:RTCDataChannel不是“打开”

我跟随了关于WebRTC的整个教程,并实现了一个简单的P2P聊天。 我的信令服务器在localhost:9090上工作。 当我尝试发送消息时,我收到: RTCDataChannel.readyState is not 'open' 但是,这个连接似乎已经正确build立: Connected Got message {"type":"login","success":true} RTCPeerConnection object was created RTCPeerConnection {localDescription: RTCSessionDescription, remoteDescription: RTCSessionDescription, signalingState: "stable", iceGatheringState: "new", iceConnectionState: "new"…} Channel created Got message {"type":"answer","answer":{"type":"answer","sdp":"v=0\r\no=- 5123156273253761787 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 9 UDP/TLS/RTP/SAVPF 127\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:aWnc+x1ot0kpmCj6\r\na=ice-pwd:o8BH8EIsb/FVLBDkUt5Mw6V4\r\na=fingerprint:sha-256 D6:18:83:20:FC:3F:0B:87:8F:FB:D8:5D:D6:33:13:FE:C6:EE:53:3D:18:69:DD:C0:BF:23:35:95:F7:26:4D:F2\r\na=setup:active\r\na=mid:data\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:127 google-data/90000\r\na=ssrc:2024832766 cname:y/zAQto2dzSH04r0\r\na=ssrc:2024832766 msid:myDataChannel myDataChannel\r\na=ssrc:2024832766 mslabel:myDataChannel\r\na=ssrc:2024832766 label:myDataChannel\r\n"}} […]

在Windows上处理Node.js中的CTRL + C事件

我正在处理一个节点项目,我想在退出时写入一些内存。 我认为这很简单: process.on('exit', function () { //handle your on exit code console.log("Exiting, have a nice day"); }); 但是,当收到CTRL + C时,此代码不会执行(在Windows上)。 鉴于这是事实上的退出节点的方式,这似乎有点问题。 此时我尝试处理信号(on。('SIGINT',…)),结果出现错误: node.js:218 throw e; // process.nextTick错误或第一次打勾时发生'错误'事件^错误:EventEmitter没有这样的模块。 (node.js:403:27)在对象。 (Module.js:452:10)在Module._compile(module.js:434:26)处的C:\ Users \ Mike \ workspace \ NodeDev \ src \ server.js:5: Module.load(module.js:353:32)在Function._load(module.js:310:12)在Array.0(module.js:472:10)在EventEmitter._tickCallback(node.js:209:41) ) closures到一个快速的谷歌和它看来节点根本不处理Windows上的信号和CTRL + C实际上不会触发“退出”事件。 上述错误不应该在* Nix系统上退出。 但是,closuresWindows平台对我来说不是一个有效的select,所以我需要一个解决方法。 有没有办法处理由用户按CTRL + C终止脚本导致的节点中的退出事件?

为什么我不能在windows上的nodejs中终止我的subprocess?

exec = require('child_process').exec; child = exec('node child.js'); child.stdout.pipe(process.stdout); child.kill('SIGKILL'); function wait() { setTimeout(wait, 1000); child.kill('SIGKILL'); } wait(); 上面的代码不起作用。 孩子开始,并将继续无限期地写输出。 我无法弄清楚如何杀死这个孩子的过程。 我在Windows 7中运行节点v0.11.9。我知道Windows不使用POSIX信号,但是发送'WM_QUIT'会导致exception。 我的最佳解决scheme是在stdin上设置一个事件协议?