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 相关文章推荐
js或jquery实现页面打印可局部打印
Mar 27 Javascript
Js可拖拽放大的层拖动特效实现方法
Feb 25 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
初步使用bootstrap快速创建页面
Mar 03 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
JS常用函数和常用技巧小结
Oct 15 Javascript
JS验证不重复验证码
Feb 10 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
Apr 22 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
教你使用vscode 搭建react-native开发环境
Jul 07 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
Terran魔法科技
2020/03/14 星际争霸
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JQuery ZTree使用方法详解
2017/01/07 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Python计算三维矢量幅度的方法
2015/06/15 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
浅谈Python基础之I/O模型
2017/05/11 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
求职简历自我评价范例
2014/03/12 职场文书
小学生学习保证书
2015/02/26 职场文书
爱国主题班会教案
2015/08/14 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
详解Python flask的前后端交互
2022/03/31 Python
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis