Restify中接入Socket.io报Error:Can’t set headers的错误解决


Posted in Javascript onMarch 28, 2017

发现问题

在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);

至此,问题解决了。看来,官方文档也是不能全信的。。。

总结

以上就是关于这个问题解决的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JQuery 确定css方框模型(盒模型Box Model)
Jan 22 Javascript
JavaScript 一道字符串分解的题目
Aug 03 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
jQuery的attr与prop使用介绍
Oct 10 Javascript
js图片翻书效果代码分享
Aug 20 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 Javascript
基于JavaScript实现单例模式
Oct 30 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 Javascript
Vue.js 60分钟快速入门教程
Mar 28 #Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 #Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 #Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 #Javascript
js实现多行文本框统计剩余字数功能
Mar 28 #Javascript
js实现下拉框效果(select)
Mar 28 #Javascript
vue2.0获取自定义属性的值
Mar 28 #Javascript
You might like
BBS(php & mysql)完整版(六)
2006/10/09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
phpfpm的作用和用法
2019/10/10 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
javascript基础知识
2016/06/07 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
python程序文件扩展名知识点详解
2020/02/27 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
基于python实现查询ip地址来源
2020/06/02 Python
Linux的文件类型
2012/03/07 面试题
财务管理专业应届毕业生求职信
2013/09/22 职场文书
领导接待方案
2014/03/13 职场文书
少儿节目主持串词
2014/04/02 职场文书
操行评语大全
2014/04/30 职场文书
公路施工安全责任书
2015/05/08 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python