Tag: sockjs

SockJS使用WebSockets的无效URL

使用SockJS的0.3和开发版本,我试图运行echo服务器/客户端演示,在客户端它回落到XHRstream,在控制台中出现以下错误: Wrong url scheme for WebSocket http://localhost:9999/ws/014/ti0jz5iw/websocket 它应该可能使用ws://模式。 在客户端,我连接着: var sock = new SockJS('echo'); 服务器是sockjs-node回显服务器演示。 这里有什么问题?

我怎样才能使私人聊天室sockjs?

我试图build立一个聊天系统,只有两个用户可以互相交谈(很像Facebook的聊天) 我尝试了多路复用,使用mongoDB的_id作为名称,所以每个通道都是唯一的。 我面临的问题是我不能将消息直接指向单个客户端连接。 这是首先发送消息的客户端代码 $scope.sendMessage = function() { specificChannel.send(message) $scope.messageText = ''; }; 这是接收消息的服务器端 specificChannel.on('connection', function (conn) { conn.on('data', function(message){ conn.write('message') } } 当我发送一条消息到任何一个频道时,每个频道仍然收到这条消息。 我怎样才能使每个客户端只收听发送到特定频道的消息?

使用sockjs的通道(node.js,socket.io)

它引起了我的注意, socket.io有很多问题(内存泄漏,CPU使用率等),所以我正在转换我的应用程序sockjs (或别的..如果这变成很难实现)。 在socket.io我能够使用相同的连接轻松发送多个“cahnnels”上的消息 socket.emit('news', { hello: 'world' }); socket.emit('other', { hello: 'world' }); 我怎样才能达到这个使用sockjs ? 我知道这个函数并没有在sockjs实现,但是有没有一个可靠的框架呢? 我遇到了这个websocket多路复用,但不满意我在几个博客上阅读的评论。 谢谢

websocket,socket,io,sockjs,meteor…如何做出select的困惑今天

我即将做出一个协作编辑应用程序的决定。 我调查了websockets,坦率地说我很困惑。 这里我的发现迄今为止: 有很多关于websocket的文章 – 但是很多是2009年的,2010年的…通常有信息,websockets不能在所有的浏览器和/或实现蹩脚的function不全…今天的地位是什么? 有很多的框架 – 但主要是节点。 我们的应用程序是在RoR中,Eventmachine / em-websocket看起来已经有一年了 – 是否仍然会满足今天的要求? Socket.io,SockJS,meteor…有这么多,我将无法尝试所有,但我做了一些与SockJS的第一次试验。 我们的应用是二进制数据的协作编辑; 多个用户可能正在编辑同一个文档,而多个用户可能同时在不同的文档上工作。 因此,可伸缩性是关键; SockJS似乎不能扩展超过一个服务器(粘性会话)。 此外,客户需要同行更新 – 我是否需要广播设施? 我需要redis吗? 我想我的问题可以归结为: 对于我们的应用程序,我应该直接使用websockets并自定义还是使用框架? 如果一个框架,哪一个更适合我们的特定需求? 我知道这些问题有点含糊,但我首先想了解技术在何处做出正确的决定。 谢谢!

如何testingnode.js websocket服务器?

我正在使用标准configuration的sockjs。 var ws = sockjs.createServer(); ws.on('connection', function(conn) { conn.on('data', function(message) { wsParser.parse(conn, message) }); conn.on('close', function() { }); }); var server = http.createServer(app); ws.installHandlers(server, {prefix:'/ws'}); server.listen(config.server.port, config.server.host); wsParser.parse函数是这样工作的: function(conn, message) { (…) switch(message.action) { case "titleAutocomplete": titleAutocomplete(conn, message.data); break; (…) // a lot more of these } 交换机中调用的每个方法都会向客户端发回消息。 var titleAutocomplete = function(conn, data) { redis.hgetall("titles:"+data.query, […]