草庐IT

unix-networking-sockets-udp-trans

全部标签

javascript - Moment.js unix 时间戳总是以分钟为单位显示时间

我正在使用Moment.js并想将unix时间戳转换为(始终)显示从当前时间开始的几分钟前。例如)4分钟前、30分钟前、94分钟前等。现在我正在使用:moment.unix(d).fromNow()但这并不总是以分钟为单位显示,例如)一小时前、一天前等。我试过使用.asMinutes()但我相信这只是带有moment.duration()的词。 最佳答案 不确定本地Moment方法是否可行,但您可以轻松制作自己的Moment扩展:moment.fn.minutesFromNow=function(){returnMath.floor

javascript - 如何创建可重用的 Socket.IO 模块

我在创建一个为我的Socket.IO库公开功能的模块时遇到了麻烦:constsio=require('socket.io');module.exports=function(server){constio=sio(server);return{register:function(namespace){letnsp=io.of(namespace);nsp.on('connect',function(socket){//...}}}}现在的问题是我如何在其他模块中使用它?在我的app.js我用Express创建了server并且可以用require('./mysocketio')(ser

javascript - Socket.io 消息事件多次触发

我正在尝试学习node并开始使用socket.io创建混搭消息传输已经开始,但我遇到了一些麻烦。消息事件多次触发,导致一条消息在收件人的框中多次出现。我已将套接字路由到exports.chat并且想知道这是否导致了问题?缩小问题范围:消息触发次数=客户端的连接顺序。也就是说,如果客户端第二次连接,他的消息将触发两次。客户端第三次连接三次。这是代码片段:exports.chat=function(io,pseudoArray,req,res){res.render('chat',{title:'ChatPanel.'});varusers=0;io.sockets.on('connect

javascript - socket.io - socket.on 等待 promise

我有一个按钮可以与服务器进行一些通信,以检查输入的值(通过输入框)是否已经存在。代码如下:$("#button").click(function(){varexists=false;varname=$("#name").val();socket.emit("check",name);socket.on("checkReturn",function(data){exists=data.result;});if(exists){console.log("exists")}else{if(name.length>0){socket.emit("create",name);}}});});问题

javascript - 使用 Socket.IO 时如何访问 session 标识符?

我要聊天,我需要管理唯一连接。我四处搜索,但我发现的所有解决方案似乎都已被弃用。那么,我如何使用Socket.IO获取套接字的sessionID?我正在使用Node.js,Express.js和Socket.IO. 最佳答案 使用Socket.IO身份验证设置,并将cookie传递给Express的cookie解析器中间件。一旦cookie被解析,就可以获得客户端的sessionID,并从sessionstore中获取关联的session,无论是内存故事还是其他类型的store。//weneedtousethesamesecretf

javascript - Node.js 和 Socket.io : Self-signed certificates for a secure websocket connection

我一直在网上寻找直接的答案,但大多数解决方案都涉及使用Express和提供HTTP内容以实现安全连接。我对Node.js和socket.io的安全网络套接字连接(wss)更感兴趣我不使用Node.js进行HTTP请求。我使用与Node.js配合使用的socket.io模块将消息实时传递到我的应用程序。我只将Node用于网络套接字连接。我将简要说明我的设置是什么。我使用Django作为我的HTTP后端。用户向Django发出请求,Django将该请求的内容转发给Redis,Node.js监听Redis的一个channel,它处理内容并将消息发送给适当的接收者。非常简单直接。一切正常。但我

javascript - 自动重新连接超时后如何重新连接 socket.io 客户端?

笔记本电脑进入休眠状态很常见。这会导致socket.io客户端断开连接。当用户返回到Web应用程序时,socket.io客户端不会尝试重新连接(可能达到重新连接限制?)。如果用户执行某些操作,我如何告诉套接字重新连接?例如,我希望emit函数检查连接是否处于事件状态,如果没有则尝试重新连接。注意:我只需要客户端JS代码,我没有使用node.js。 最佳答案 在0.9版中,您可以尝试将连接选项对象设置为一些激进的设置:varmain=io.connect('/',{'reconnectiondelay':100,//defaultst

javascript - 需要 : var io = require ('socket.io' )(http); 的双参数

我是node和JS的新手,正在研究socket.io聊天示例(http://socket.io/get-started/chat/)。我在服务器中遇到了这段代码:varapp=require('express')();varhttp=require('http').Server(app);vario=require('socket.io')(http);我看过其他教程,之前从未见过require之后的双括号。(http)部分有什么作用?它是require的参数,它改变了类型,还是其他什么?谢谢! 最佳答案 在JavaScript中,

javascript - 以 gzip 格式从 node.js 服务器向客户端发送 socket.io 响应数据

我遇到的问题是我不知道如何判断我发送回客户端的数据是否以gzip格式压缩。从我看到的命令行查看服务器的输出:debug-websocketwriting3:::{"result":1368673052397}debug-websocketwriting3:::{"result":1368673053399}...对我来说,这看起来像是服务器正在以ascii格式写入响应,而不是在发送之前先压缩它。下面是我为产生这些结果而编写的示例。从我读过的内容来看,只要我设置了“浏览器客户端gzip”,我的回复就应该以gzip格式发送。如果它们不是,我该怎么做,如果是,我如何从服务器的调试信息中判断它

javascript - 使用 Socket.IO 发送数据的频率如何?

我正在创建一个Web应用程序,它需要非常频繁地从服务器向客户端发送少量数据(每个套接字3个整数值),我想看看是否有更新客户端的最大频率使用Socket.IO.我希望实现至少50个套接字连接,每个连接每秒发送20个更新。理想的数量是200个套接字连接,每秒发送50个更新。问题:使用Socket.IO发送新数据的频率是否有限制?注意:我认识到这也成为服务器-客户端连接的速度问题,因此非常感谢任何关于我需要多快连接的信息。我计算出如果发送的每个数据包大约为500字节,那么我将能够在1MB/s的连接上每秒发送20个更新到100个连接。 最佳答案