Tag: socket.io

Nodejs和Socket.io中的RealTime Collaborative Text-Editor

我正在开发一个类似于https://quip.com/的具有段落locking属性的实时文本编辑器。 在socket.io和nodejs中 。 这意味着当您写入给定的段落时,其他协作者不能编辑它。 当你敲击input或移动光标到段落变成其他合作者 可编辑的新行。 在这之后我很困难。 我正在考虑一个很好的方法来进一步移动。 build议请。 下面是我的代码 ,完美的作品。 到目前为止,我可以得到所有合作者的名单,并将编辑器的内容广播给其他合作者。 的index.html <!DOCTYPE html> <html> <head> <title>Connected Clients</title> <!–<meta charset="UTF-8"> –> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <!–<script type="text/javascript" src="jquery.js"></script> –> <script src="/socket.io/socket.io.js"></script> </head> <body> <textarea id="editor" style="height:200px;width:300px"> Thinknest Pragraph locking Test sample ! </textarea> <script> function msgReceived(msg){ //clientCounter.html(msg.clients); document.getElementById('people').innerHTML=msg.uid; //console.log(msg.id); } var clientCounter; $(document).ready(function () { clientCounter […]

为什么socket.post()比socket.emit()慢

我正在Nodejs中构build一个可恢复的file upload器。 首先,我使用socket.emit()将其实现为原始Node.js,然后将其移植到Sails.js,并使用来自客户端的socket.post()调用socket.post()控制器。 我发现使用socket.emit()实现比使用socket.emit()更快。 任何人都可以告诉我为什么..?

Nodejs服务器无法检测到与Pubnub + SocketIO的连接

我的nodejs服务器无法检测到新的浏览器连接(“连接”事件),我不知道为什么。 我缩小了几天工作的一个问题,并怀疑必须添加在浏览器上实现的pubnub套接字连接。 以下是我的server.js var http = require('http') , connect = require('connect') , io = require('socket.io') , fs = require('fs') , uuid = require('node-uuid') , _ = require('lodash'); // pubnub!!! (how to initialize it for use on server) var pubnub = require('pubnub').init({ channel: "my_channel", publish_key: "pub-key", subscribe_key: "sub-c-key", uuid: "Server", origin : 'pubsub.pubnub.com' }); pubnub.subscribe({ channel: […]

Node.js OpenShift EACCESS错误

我不能让应用程序正常启动,不断得到EACCESS错误: Error: listen EACCES 代码如下: var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080 var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1' var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(server_port); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); […]

如何从Node socket.io-client **通过HTTPS连接到节点socket.io-server **

我已经设置了一个套接字服务器,如下所示: /* node-server.js */ var port = 3333; var fs = require('fs'); var options = { key: fs.readFileSync('ssl/server.key'), cert: fs.readFileSync('ssl/server.crt') }; var server = require('https').Server(options); var io = require('socket.io')(server); console.log('Socket server listening on port ' + port + '.'); server.listen(port); io.sockets.on('connection', function(socket) { console.log("Client " + socket.id + " connected."); }); 和一个连接到它的节点客户端: /* node-client.js */ […]

Socket.io客户端socket.io@0.9.16

我的问题是,我可以连接到我的客户端通过HTML / JS,但我不能做同样的事情使用节点。 我正在使用socket.io@0.9.16。 var io = require('socket.io'); var socket = io.connect('https://website.com:3000'); socket.on('connect', function (data) { socket.emit('room', 'connecting'); }) socket.on('message' , function (data){ console.log("message has been sent"); }); VS <html> <script src="https://website.com:3000/socket.io/socket.io.js"></script> <script type="text/javascript"> var socket = io.connect('https://website.com:3000'); socket.on('connect', function (data) { socket.emit('room', 'connecting'); }) socket.on('message' , function (data){ alert(data.message); }); </script> </html>

访问在socket.io中发出消息的套接字

我有一个名为GameServer的类,它具有处理各种socket.io消息的方法。 这里是一个简单的例子: var GameServer = function(app, io) { this.app = app; this.io = io; this.io.on('connection', this.handleConnect.bind(this)); }; GameServer.prototype.handleConnect = function(socket) { socket.on('receive_a_message', this.handleMessage.bind(this)); }; GameServer.prototype.handleMessage = function(message) { this.app.doSomethingWithMessage(message); // here is where I want to reply/emit to the socket that sent me the message }; 不幸的是,因为我需要绑定()我的socket.iocallback方法,以便访问其他类属性(在上面的例子中,我需要访问this.app运行doSomethingWithMessage),我在不同的上下文。 有没有办法让我的socket.iocallback绑定到我的GameServer类,仍然访问发送我的消息的套接字? 任何人都可以看到解决这个问题的工作?

我的socket.io应用程序的服务器不在Heroku上启动

我正在尝试在Heroku上部署我的应用程序。 我已经按照这些说明: https ://devcenter.heroku.com/articles/getting-started-with-nodejs,启用websockets,但是当我运行$ heroku打开,我登陆错误页面。 这里是我从heroku得到的日志: 2014-07-14T11:41:27.331343+00:00 heroku[web.1]: Starting process with command `node index.js` 2014-07-14T11:41:28.431660+00:00 app[web.1]: info: socket.io started 2014-07-14T11:42:27.710153+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 2014-07-14T11:42:27.710206+00:00 heroku[web.1]: Stopping process with SIGKILL 2014-07-14T11:42:28.915226+00:00 heroku[web.1]: Process exited with status 137 2014-07-14T11:42:28.927884+00:00 heroku[web.1]: State changed […]

Socket.io客户端重新连接不起作用

我使用Socket.io在Node.js服务器和客户端网站之间进行通信。 一切都很好! 除了一件事。 我允许用户从Socket.io断开连接,稍后重新连接,或者至less我试图。 请记住,调用io()的套接字存储在mySocket中,使用mySocket.io.disconnect()可以正常断开连接。 服务器捕获它,客户端知道它已经断开连接,这很好。 问题是当我尝试稍后重新连接… 所以起初我只是试图再次设置mySocket=io() ,但失败了。 我知道有一个重新连接的方法,所以我尝试使用,并且我的问题变得更糟。 所以,现在我正在使用mySocket.io.reconnect() ,我得到了一些奇怪的结果,如下所述。 所以首先,服务器正在尝试重新连接。 正好赶上on('connection',…)事件。 然而,CLIENT似乎认为它从来没有重新连接 – 例如, mySocket.connected的值保持为false并且所有emit()调用失败(并且永远不会到达服务器)。 除了简单的mySocket.io.reconnect()之外,是否还有一些特殊的方法可以使用? 或者我应该设置一些variables或参数? 为什么我的服务器捕捉重新连接,如果客户认为它没有连接? 怎么回事,我该如何解决?

如何从android与socket.io模块发送数据到nodejs服务器?

我写了这个node.js server.But当我从android发送数据与socket.io模块。但我得到errors.Please帮我吗? 我怎样才能把数据(发送者,消息)从android发送到node.js服务器。 node.js服务器 var io = require('socket.io').listen(8001); var connectCounter=0; console.log('Server running :'); // open the socket connection io.sockets.on('connection', function (socket) { connectCounter++; console.log('bağlantı başarılı sayı:'); console.log(connectCounter); //Recode user online var sender; socket.on('user-online',function(data){ console.log('user-online'); var obj = JSON.parse(data); sender = obj.sender; console.log(sender); socket.broadcast.emit('online',{sender : sender}); }); socket.on('message', function(message){ console.log('on-message'); var obj = JSON.parse(message); socket.broadcast.emit('event',{sender : […]