Articles of socket.io

混淆JavaScript对象的行为

我用Node.js使用Socket.IO 我有一个对象socket ,看起来像这样: SocketNamespace $events: Object … socket: Socket 那么如果我看一下Socket (即socket.socket ) Socket $events: Object … sessionid: "1549988601982716407" 再次,工作正常。 但是,如果我只是想返回sessionid ,所以我使用socket.socket.sessionid我得到… undefined 如果我为socket.socket做一个typeof ,我得到的object ,但是对于socket.socket.sessionid ,我只是得到了undefined 。 编辑:这是我的代码: 浏览器: $(function() { $.getScript('http://localhost:8080/socket.io/socket.io.js', function() { var socket = io.connect('http://localhost:8080'); console.log(socket.socket.sessionid); }); }); 应用程序: var io = require('socket.io').listen(8080); io.sockets.on('connection', function (socket) { }); 编辑2:更多数据: 而不是一个日志,我已经取代了这个; console.log(typeof(socket)); console.log(typeof(socket.socket)); […]

Node.js脚本与Forever运行,但大约30分钟后停止

我是一个Web开发人员,对于整个“运行你自己的(v)服务器”是一个新的东西,所以它可能是一个简单的服务器问题,我还没有想出来 我的问题是这样的:我在我的vServer上运行一个简单的Node.js (0.6.6)脚本,我使用“永远”来守护脚本。 该脚本检查连接套接字,增加一个variables并将该数字发送给用户。 如果套接字断开,则variables减1。 剧本工作正常,显示我约100-200“活跃”用户, 但大约10-50分钟后,剧本停止工作。 脚本停止后,vServer的响应速度非常慢(至less我是这样想的) – 我的vServer是否可能太弱? 这里是代码: var io = require('socket.io').listen(8222); var count = 0 io.sockets.on('connection', function(socket) { count++; io.sockets.socket(socket.id).emit('message', {count: count}); socket.on('disconnect', function () { count–; }); }); 最后一件事:我为我的项目(从打开套接字的位置)使用托pipe服务器,为node.js部分使用来自其他托pipe服务器的vServer。

Socket.IO无法正常工作

由于某种原因我的服务器使用socket.io不能正常工作。 该程序制作一个HTML5canvas,然后打开套接字,以便多人可以查看一个canvas。 我可以让canvas根据input绘制东西,但是我不能让socket.io正确运行,以便浏览器同步绘图。 我在ec2上运行这个。 任何帮助表示赞赏:) 我在node.js中编写了服务器 server.js http://pastebin.com/hH51DTb3 index.html http://pastebin.com/b7PrScze scripts.js http://pastebin.com/zLgDf7zs 哦,顺便说一下,你可以看看这里看起来像: http : //107.20.163.241/ 编辑:是的KaoD当然我已经尝试过的东西。 我已经尝试卸载并重新安装socket.io,我尝试将项目文件夹移动到不同的目录位置,我试着将socket.io移动到一个外部文件夹,还有一些我似乎无法记住自动取款机 最小的testing用例是,如果两个人都去同一个网站,他们都会实时看到对方平局 改变安全组的工作,谢谢。

NowJS – 客户端/浏览器通信(不联系“所有人”)

可以定义(客户端):now.function = function(){console.log('test');} …被服务器使用:everyone.function()调用 – 但它可以在特定客户端的浏览器上执行(使用像:everyone.onlyThisClient.function())? 在某些情况下(nowjs.on(例如'connect'(…)),使用this.now.function()可以做到这一点 – 但是可以在任何其他nowjs函数“外部”做同样的事情/目的?

Socket.io和Express得到一个错误“没有方法套接字”

这里是我试图testing一个基本的Socket.io和Express设置(每个在socket.io网站上的例子)时得到的错误: /Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:659 var socket = this.namespaces[i].socket(data.id, true); ^ TypeError: Object function extend(another) { var properties = Object.keys(another); var object = this; properties.forEach(function (property) { object[property] = another[property]; }); return object; } has no method 'socket' at Manager.handleClient (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:659:41) at Manager.handleUpgrade (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:588:8) at HTTPServer.<anonymous> (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:119:10) at HTTPServer.emit (events.js:88:20) at Socket.<anonymous> (http.js:1390:14) at TCP.onread (net.js:334:27) 欣赏我可以得到的任何帮助,请:)

用户可configuration的带有Node.js的TCPstream

我试图build立一个TCPstream到客户端使用node.js用户可以指定数据主机和端口。 我使用socket.io创build一个套接字连接到客户端和net.createConnectionbuild立stream。 一旦streambuild立,我需要将数据从stream发送到客户端套接字。 我的代码除了在客户端更改主机和/或数据套接字的情况下工作。 似乎一旦客户端套接字build立,那么我可以更改TCPstream上的端口或主机。 套接字消息被接收,主机和端口的值使它到达正确的位置。 但没有喜悦,来自TCPstream的数据没有连接,看来.on(error),.on(connect)等不起作用。 我有一个范围问题? 下面代码块中的隐含范围是我现在如何设置的。 任何骨头,你可以折腾我的方式将使狗快乐。 我在一个洞,似乎不能出去。 var express = require('express'), app = module.exports = express.createServer(), io = require('socket.io').listen(app, { log: false }), host = "somehost", port = 2001, dataStream = net.createConnection(port, host); io.sockets.on('connection', function(socket){ dataStream.on('error', function(error){ socket.emit('error',{message:"Data Connection Error "+ error}); }); dataStream.on('connect', function(){ socket.emit('connected',{message:"Data Source Connected"}); }); dataStream.on('data', function(data) […]

它可能使用JavaScript套接字客户端统一js脚本..?

是统一的JS脚本支持套接字客户端使用JavaScript? 或任何build议使用JavaScript套接字客户端统一? 我尝试socket.io库的JavaScript套接字客户端,但我不知道如何实现在统一,任何人都可以解释? <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> 这个代码在HTM页面,我想我有想法包括在统一脚本的脚本,但我找不到文件…感谢您的帮助

刷新页面后套接字不工作

我build立了一个使用socket.io和expressjs的小应用程序 服务器端 var express = require('express'), sio = require('socket.io'); var app = express.createServer(); app.configure('development', function(){ app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.static(__dirname + '/')); app.set('views', __dirname + '/views'); app.use(express.errorHandler({dumpExceptions: true, showStack: true})); app.use(app.router); }); app.listen(4000); var io = sio.listen(app); app.get('/', function (req, res) { res.redirect('index.html'); }); io.sockets.on('connection', function (socket) { app.post('/mysegment',function(req,res){ var userData = req.body; socket.emit('sendUser', userData); res.send("yes I […]

Websocket传输不能在我的Firefox / Chrome(Windows版本)上运行

我在Windows上使用最新版本的Firefox / Chrome来testing我的应用程序(使用socket.io)。 但websocket传输不起作用,在浏览器控制台它发送消息,显示它支持WebSocket,xhr-polling …但它不起作用,然后后备使用其他人(大约10s以后)。 我把源代码运行在Ubuntu上(在一个虚拟机上),并在Firefox上testingFirefox / Chrome,它可以很好的与websocket一起工作。 然后我尝试使用Windows版本的2浏览器在Ubuntu上testing服务器,websocket不起作用(与Windows上的服务器相同),然后回退。 所以我认为问题是我的Windows或Firefox / Chrome上。 我不知道为什么:这是否发生在使用Windows的其他计算机或Windows防火墙出现问题? 更新:Websocket在Windows上的Safari中工作。 我试图卸载Firefox和Chrome,它仍然无法正常工作。 我试过了,它可以在其他Windows 7电脑(我的朋友和VM)上工作。 我的Windows 7一定有一些问题。

PHP – 长时间轮询通知(PHP标志或其他方式?)

我很快就开始一个新的项目,而且即时考虑长时间轮询通知用户,他们有一个新的私人信息/通知,他们必须检查,真的类似于Facebook用来通知你,有人发布了一些关于你/喜欢你的照片 从我看过的文字来看,cometd似乎是一个很好的select。 然后,其他方式开始出现,如:Socket.io,和node.js .. 现在,我的问题是, 你认为哪一个是这种情况的最佳select,为什么? 我需要做的是以下几点: 用户1login到他们的帐户 用户2向用户1发送存储在数据库中的消息,并生成一个标志(如果可能的话?!) 负责用户1的PHP脚本应该拿起标志,并将通知推送给用户1 我知道如何照顾JavaScript方面,但我从来没有做过类似于长轮询的任何事情。 我使用jQuery作为JavaScript库和PHP的服务器端。 那么build议和任何好的资源来做到这一点?