Restify中接入Socket.io報(bào)Error:Can’t set headers的錯(cuò)誤解決
發(fā)現(xiàn)問(wèn)題
在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);
});
});
然而,當(dāng)在本地跑上面這段代碼的時(shí)候,卻一直報(bào)錯(cuò):
Error: Can't set headers after they are sent.
解決方法
可是我也沒(méi)有在res.send方法之后set headers呀。百思不得其解,后來(lái)在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);
// ...
好的,問(wèn)題就出在,socketio listen的不是 server對(duì)象,而是server.server對(duì)象。
var io = socketio.listen(server.server);
至此,問(wèn)題解決了??磥?lái),官方文檔也是不能全信的。。。
總結(jié)
以上就是關(guān)于這個(gè)問(wèn)題解決的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
node.js中的fs.readdir方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.readdir方法使用說(shuō)明,本文介紹了fs.readdir方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法
這篇文章主要介紹了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法,結(jié)合實(shí)例形式分析了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
詳解Wondows下Node.js使用MongoDB的環(huán)境配置
這篇文章主要介紹了詳解Wondows下Node.js使用MongoDB的環(huán)境配置,這里使用到了Mongoose驅(qū)動(dòng)來(lái)讓JavaScript操作MongoDB,需要的朋友可以參考下2016-03-03
在?node?中使用?koa-multer?庫(kù)上傳文件的方式詳解
本文主要介紹了上傳單個(gè)文件、多個(gè)文件,文件數(shù)量大小限制、限制文件上傳類型和對(duì)上傳的圖片進(jìn)行不同大小的裁剪,對(duì)node使用?koa-multer?庫(kù)上傳文件相關(guān)知識(shí)感興趣的朋友一起看看吧2024-01-01

