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 相关文章推荐
javascript代码编写需要注意的7个小细节小结
Sep 21 Javascript
jquery禁止回车触发表单提交
Dec 12 Javascript
包含中国城市的javascript对象实例
Aug 03 Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
vue axios 表单提交上传图片的实例
Mar 16 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
JS实现二维数组元素的排列组合运算简单示例
Jan 28 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
Echarts如何重新渲染实例详解
May 30 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
星际玩家的三大定律
2020/03/04 星际争霸
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
php给图片加文字水印
2015/07/31 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
理解JavaScript中的事件
2006/09/23 Javascript
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python Property属性的2种用法
2015/06/21 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
python基于socket函数实现端口扫描
2020/05/28 Python
python中常见错误及解决方法
2020/06/21 Python
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
交通事故检查书范文
2014/01/30 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
大学生标准自荐书
2014/06/15 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
北京颐和园导游词
2015/01/30 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
单位收入证明范本
2015/06/18 职场文书
导游词之西递宏村
2019/12/10 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js