您好,登錄后才能下訂單哦!
發現問題
在restify的官方文檔中,接入socket.io的代碼是醬汁的: http://restify.com/#socketio
var server = restify.createServer(); var io = socketio.listen(server); // ... io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });
然而,當在本地跑上面這段代碼的時候,卻一直報錯:
Error: Can't set headers after they are sent.
解決方法
可是我也沒有在res.send方法之后set headers呀。百思不得其解,后來在issue中找到了解決方法:https://github.com/restify/node-restify/issues/717
var restify = require('restify'); var socketio = require('socket.io'); var server = restify.createServer(); var io = socketio.listen(server.server); // ...
好的,問題就出在,socketio listen的不是 server對象,而是server.server
對象。
var io = socketio.listen(server.server);
至此,問題解決了。看來,官方文檔也是不能全信的。。。
總結
以上就是關于這個問題解決的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。