Articles of 套接字

node-mysql其中connection.end()去

我真的很困惑在node-mysql中使用connection.end()。 我不完全明白它在哪里,目前我把它放在查询后,但如果我创build一个新的查询,我得到一个错误Cannot enqueue Query after invoking quit. 现在我的应用程序有一堆检查在这里是其中之一: socket.on('connect', function(data,callBack){ var session = sanitize(data['session']).escape(); var query = connection.query('SELECT uid FROM sessions WHERE id = ?', [session], function(err,results){ if(err){ console.log('Oh No! '+err); }else{ io.sockets.socket(socket.id).emit('connectConfirm',{data : true}); } connection.end(); }); }); 现在之后,如果我有任何其他查询我得到错误发生。 我在我的jsFiddle中做了一个更明智的解释: http : //jsfiddle.net/K2FBk/更好地解释我得到的问题。 node-mysql的文档并不完全解释把connection.end() 应该去哪里避免这个错误?

操作系统如何在接受同一套接字的多个进程之间进行负载平衡?

我正在阅读Node.js中的集群模块的文档: http://nodejs.org/api/cluster.html 它声称如下: 当多个进程都accept()相同的底层资源时,操作系统将非常有效地在它们之间进行负载均衡。 这听起来很合理,但是即使经过了几个小时的search,我还没有find任何可以证实的文章或者任何东西,或者说明这个负载平衡逻辑如何在操作系统中工作。 另外,什么操作系统正在做这种有效的负载平衡?

Bower错误隧道套接字无法build立,原因=parsing错误

我背后的公司代理,我已经把我的HTTP_PROXY和HTTPS_PROXY env var设置为 http://username:password@proxyname:port/ 做console.log(process.env)输出这些var正确。 npm正在工作,我得到了它的凉亭,它(凉亭)工作正常,但自从我重新启动Windows XP,我总是得到: bower error tunneling socket could not be established, cause=Parse Error 我不认为在代理方面有什么新的东西。 我已经尝试重新设置这些variables,重新开始一切…任何消化?

如何在node.js和socket.io应用程序中组织套接字处理

对于我的REST API,我已经为每个路线创build了一个文件。 app.get('/api/user', routes.user.index); app.get('/api/user/login', routes.user.login); 等等 现在我将socket.io引入到后端,看来我只能为所有套接字事件调用一个函数。 var socket = require('./socket/stuff.js'); io.sockets.on('connection', function(sock){ socket.stuff(sock, io); }); 我应该如何分解./socket/stuff.js文件(输出的stuff )。 进入单独的文件。 我想最终用套接字取代我的REST API,但是我不想把所有的东西放在一个文件中。 我想我会有: ./socket/chat.js ./socket/user.js 等等

node.js / socket.io有最大的消息/事件大小

titel说这一切 – 有一个事件(或消息),我想从服务器发送到客户端的最大尺寸? 我想发送一个JSONstring到客户端,它看起来像这样: [{"id":"4e25434f0f110ec101000005","media":"4fb135d508e972664c5adf3.jpg"}, {"id":"4e2545f30f110ec101000021","media":"d09b745414e251695aa33e04.jpg"}, {"id":"4e2554ce7bcfb24702000012","media":"076eea872411e433b9.png"}, {"id":"4e255bc4f34a41cb02000010","media":"c2af3db4707db3ece.png"}] 如果该数组将包含例如200个项目,这会崩溃?

React和Socket.io:能够获取初始数据 – 但是当新post进来时视图不会更新

不知道如果问题是如何我的套接字设置 – 或者如果我不正确地尝试使用React呈现数据。 我可以成功地使用套接字获取数据,但是当新数据发布到服务器时,它不会处于更新状态。 我的意图是React中的状态自动呈现新的数据,这是因为套接字连接而始终处于活动状态。 这是我的客户端应用程序从服务器获取消息并呈现它们: var Chat = React.createClass({ getInitialState: function() { return { messages: null } }, componentWillMount: function(){ var self = this; socket.emit('getMessages'); socket.on('serverMessages', function (data) { self.setState({messages: data}) }); }, render: function() { var messages = this.state.messages ? <MessageList messages={this.state.messages}/> : null return ( <div className="jumbotron"> { messages } <MessageForm submitMessage={this.submitMessage}/> […]

NodeJS:如何为testing服务器创build一个虚假的tcp套接字

我试图unit testing我的服务器代码(非HTTP,自定义协议)。 我需要创build一个模拟双工套接字,我可以asynchronous地发送消息并接收消息。 我从事件streamreadArray和writeArray创build了一个双工stream,但是readArray需要提前写入数据,writeArray不会触发,直到stream结束。 我需要testing一段时间。 一个理想的解决scheme是将两个双工sockets连接在一起。 有没有现有的解决scheme呢? 我宁愿不必诉诸初始化一个实际的服务器来testing这个。

Webpack传输轮询错误

我在启动webpack-dev-server的express / webpack应用程序中有下面的咕噜任务: "webpack-dev-server": { options: { webpack: webpackConfig, publicPath: '/assets/', watch: true, inline: true, hot: true, quiet: true }, start: { keepAlive: true, webpack: { devtool: 'eval', debug: true } } } 我遇到的问题是,轮询者只是垃圾邮件我的铬控制台,这将是非常讨厌的,当涉及到debugging。 (我在裸机应用程序阶段)。 任何人有任何想法可能造成这一点?

在HTTP模式下,node.js是否比Java有更大的性能优势?

我刚刚开始在node.js中编写一段时间。 这是我的一个问题: 在HTTP应用程序中,给定请求 – 响应模型, 单个应用程序线程被阻塞,直到所有的后端任务完成并且响应返回给客户端,所以性能改进似乎仅限于微调后端事物并行IO请求。 ( 当然,这个改进对涉及到很多繁重和独立的 IO操作很重要,但是通常这个条件也意味着通过重新devise数据结构,可以消除大量的IO请求,并且可能最终获得更好的性能而不仅仅是发行并行操作。 ) 如果那是真的,它怎么会比那些基于Java(或PHP,Python等)的框架产生更好的性能呢? 我也参考了一篇文章了解node.js事件循环 ,这也解释了这种情况: 它确实是一个单线程运行:你不能做任何并行的代码执行; 例如做一个“睡眠”会阻塞服务器一秒钟: while(new Date().getTime() < now + 1000) { // do nothing } 然而,除了你的代码之外,所有东西都是平行的。 我亲自证实,通过将“睡眠”代码放入一个IOcallback闭包中,尝试提交导致此callback的请求,然后再提交另一个。 两个请求都会在处理时触发控制台日志。 我的观察是,后者被阻止,直到前者回复。 那么,这是否意味着只有在双方都可以随时发送事件和互相推送消息的套接字模式下,才能充分利用其asynchronous处理能力呢? 我对此有点困惑。 任何意见或build议是受欢迎的。 谢谢! 更新 我问这个问题是因为报告了一些性能评估案例,例如Node.js接pipe了企业 – 无论您是否喜欢 ,以及LinkedIn从Rails移动到Node:27服务器的速度提高了20倍 。 一些激进的观点声称,J2EE将被完全取代: J2EE已经死了:由JSON服务支持的长寿命的Javascript 。

Socket.io替代

我提前道歉,这可能会被标记和封闭作为一个基于意见的线程,但这纯粹是一个事实调查的使命。 我对networking套接字的世界很陌生 ,我知道的唯一信誉良好的库是socket.io,并且该网站正在closures,因此我正在借此机会发现另一个库。 我正在构build一个MEAN应用程序,我希望能够在客户端和中央服务器之间进行通信,这些都是实时的,这就是socket.io会起作用的地方,但是还有其他的select我应该知道吗? (我的服务器是用Express 4编写的)