Tag: socket.io

与Node.js服务器应用程序通信

我正在构build一个聊天应用程序,该应用程序由一个带有Node.js / socket.io驱动的聊天服务器的Django Web后端组成。 有些情况下,通过Web界面(例如禁止用户)进行的更改需要立即推送到聊天服务器。 我可以想到以下选项: 使用基于Python的socket.io客户端与服务器直接连接(有哪些好的Python客户端?) 使用redis或消息队列做pub / sub的事件(似乎是矫枉过正) 在辅助localhost-only端口上实现一个简单的TCP协议(这可以使用内置的Node和Python TCP库来完成) 什么是最好的select?

在socket.on中更改一个variables

我想用node.js做一个项目,但是我遇到了一个显示variables的问题。 客户端的这部分代码: $(document).ready(function () { var socket = io.connect('http://localhost:8000'); var a = 0; var b = 0; socket.on('request', function (data) { a = data; }); socket.on('read', function (data) { b = data; }); var q = a * b; $('span#calculate').html(q); // Etc… }); 通常它应该显示这个计算的结果,但它仍然显示一个0 (这意味着该variables没有改变socket.on )。 我怎么解决这个问题?

Socket.io – 无法加载文件或io未定义

我正在尝试设置一个简单的NodeJS – socket.io Web应用程序。 我已经在我的Raspberry Pi上安装了NodeJS和Socket.io,并且可以毫无问题地启动服务器脚本。 我已经下载了客户端socket.io,我正在加载前端脚本。 我的问题是,每当我尝试连接到我的服务器我的浏览器给我这些错误。 Error: failed to require "socket.io" from "root" …plete}}});require.register("learnboost-engine.io-client/lib/transports/websocket… socket.io.js (linje 1) ReferenceError: io is not defined var socket = io.connect('http://192.168.0.105:8888'); 这是服务器脚本。 var io = require('socket.io').listen(8888); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); console.log('Running fine'); 这是我的前端脚本。 <!–<script […]

基于浏览器的应用程序需要IO控制

这是一个关于构build具有服务器端和客户端需求的应用程序的最佳方法的问题。 原谅这个长度 – 我想尽量清楚我的模糊问题。 对于独立的非networking连接艺术项目,我正在创build一个简单的基于浏览器的应用程序。 它可以被最好的比作一个华丽的半复杂的计算器。 我希望应用程序利用浏览器演示function,并在单个非重新加载页面中运行。 尽pipe我在Perl,PHP和Python中编写服务器端应用程序的经验非常丰富,但我更喜欢客户端编程,也是JavaScript的新手。 该应用程序将做一些公平的math运算,在Raspberry Pi上进行相当程度的I / O控制,以及大量的显示控制。 我最初的想法(和舒适区域)是用Python编写一些JS钩子,但我可能需要重新思考。 我宁愿将逻辑层从表示层分离出来,但是考虑到整个事情发生在一个非重载html页面上,JavaScript似乎是我最合理的select。 我将在Raspberry Pi上运行,我需要访问input和输出的GPIO端口。 我知道JavaScript将无法直接执行I / O操作,因此我需要转向AJAX-ishtypes的调用来接收和发送IO,类似nodejs或socket.io。 我的原则性问题是 – 在这两种方法之间进行select是否有明确的最佳做法: 在客户端JavaScript中编写应用程序的主要逻辑,并使用服务器端脚本执行I / O或 通过调用客户端Javascript来pipe理表示层,将应用程序的逻辑写入服务器端语言(如Python)中? 这两种方法都需要客户端脚本和服务器端脚本之间的中介。 什么才是最简单的平台或图书馆来做到这一点,而不是总是矫枉过正或完全压倒学习者?

Flash + Node.JS + Socket.io卡在握手授权

我正在写一个小型游戏,显然是基于套接字的。 一切工作正常在localhost时,但是当我从我的专用服务器运行.swf文件,并试图连接到node.js服务器,连接被卡在“握手授权”: info: Server starting… info – socket.io started info: Listening on port 4000 info: Server started. debug – client authorized info – handshake authorized _kqPhvoD6jYI-c1Gr7zu 这就是它。 本地SWF文件 – >本地Node.JS – >工作。 本地SWF文件 – >远程Node.JS – >的作品。 远程SWF文件 – >远程Node.js – >不起作用。 节点版本0.10.12。 这不是防火墙或防病毒软件。 尝试在不同的端口上运行。 代码示例: //setup express for serving crossdomain on same port as […]

无法使用npm在我的Windows上安装socket.io

我试图在我的Windows 7上安装socket.io。 我已经尝试几乎所有的安装方式。 我想使用npm进行全局安装。 我不想使用本地包括的方法。 我希望全球安装这个软件包。 我在这里附加了npm-debug.log文件内容的踪迹。 如果你需要完整的文件,然后告诉我,我可以提供给你。 帮助将不胜感激。 203 silly lockFile 83592abd-ient-socket-io-client-0-9-16-tgz https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz 204 verbose lock https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz C:\Users\ehussain\AppData\Roaming\npm-cache\83592abd-ient-socket-io-client-0-9-16-tgz.lock 205 verbose read json C:\Users\ehussain\AppData\Roaming\npm-cache\redis\0.7.3\package\package.json 206 verbose addRemoteTarball [ 'https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz', 206 verbose addRemoteTarball '4da7515c5e773041d1b423970415bcc430f35fc6' ] 207 silly lockFile 10399cfa-redis-0-7-3 redis@0.7.3 208 silly lockFile 10399cfa-redis-0-7-3 redis@0.7.3 209 info retry fetch attempt 1 at 17:58:56 210 verbose fetch […]

有没有办法检查在Socket.io发送/接收的数据包的大小?

就像标题一样。 我正在尝试使用Socket.io检查由Node.js服务器发送和接收的数据包的大小。

通过Nginx时,Socket.io连接失败

我的应用程序工作正常,当我直接连接到它,但是当我通过Nginx代理我在浏览器中得到一个“意外的延续框架”错误。 我怎么去debugging呢?

转到另一个url,无需重新加载页面

如果我去一个域的子path,正常的方法是做<a href="/somepath">Some Path</a> 。 这将完全重新加载页面。 但在Facebook上,当您打开一张照片时,地址栏上的url会发生变化,但整个页面不会重新加载,只会加载照片平台。 所以这样人们可以分享照片的url。 我想知道这是怎么做的? 我做了一些search,一些人build议使用history.pushState ,但是,这只适用于大多数现代浏览器。 Facebook上的那个也适用于IE 7,我想知道他们是怎么做到的?

节点+ socket.io:多个服务器发射单个客户端发射?

我刚刚设法连接到一个服务器脚本与socket.io,所以我很高兴。 尽pipe我的脚本产生了奇怪的行为,但我还是不太高兴:我发送一个发送给服务器脚本的button,服务器testing脚本将6x消息发送回控制台日志。 谷歌search这个问题的描述获得点子,重复连接的想法,但我不认为就是这样。 无论如何,这是客户端app.js: var commentapp={ init: function(){ var commentapp=this; commentapp.btn_api=$('#btn_api'); commentapp.btn_api.click(this.get_comment_data); }, get_comment_data: function(btn_event){ var commentapp=this; console.log('trying to connect'); commentapp.socket=io.connect('http://localhost:8080'); commentapp.socket.on('connect', function() { commentapp.socket.emit('btn_api_call'); }); //commentapp.socket.on 'connect', commentapp.socket.on('serverMessage', function(content){ console.log(content); } ); //commentapp.socket.on('serverMessage' } }; $(function() { commentapp.init(); }); 服务器脚本如下所示: var httpd = require("http").createServer(handler); var io=require('/Users/user/Virtualenvs/node_modules/socket.io/lib/socket.io').listen(httpd); var fs = require('fs'); var url = require("url"); […]