Tag: socket.io

如何在MongoDB中聆听某些集合的文档中的更改

我正在使用socket.io进行服务器和客户端之间的实时通信,所以我想要听取特定文档中的更改以将在线列表更新到客户端 这是我收集的Schema: var registerCompanySchema = new Schema({ sn : { type: Number, unique:true } , companyName: String , employees:[String], companyId:{type:Number,unique:true}, onlineEmployees:[String] //uname }); 我正在使用“onlineEmployees”数组来存储当前在线的员工的用户名 我是mongoDB的新手….请提供一些详细的答案。

Socket.IO超出最大调用堆栈大小

我写了一个小的Socket.IO服务器,工作正常,我可以连接到它,我可以发送/接收消息,所以一切工作正常。 这里只介绍代码的相关部分: var RedisStore = require('socket.io/lib/stores/redis'); const pub = redis.createClient('127.0.0.1', 6379); const sub = redis.createClient('127.0.0.1', 6379); const store = redis.createClient('127.0.0.1', 6379); io.configure(function() { io.set('store', new RedisStore({ redisPub : pub, redisSub : sub, redisClient : store })); }); io.sockets.on('connection', function(socket) { socket.on('message', function(msg) { pub.publish("lobby", msg); }); /* * Subscribe to the lobby and receive messages. […]

带有碎片的Android Socket.IO

我有我的应用程序是使用Koush的networking套接字/ Socket.IO库只是一个片段。 (https://github.com/koush/android-websockets) 我有一些问题让Socket.IO客户端正确地使用片段生命周期及其线程。 大部分情况下,我的片段如下所示: public class ScoresFragment extends SherlockFragment { public SocketIOClient socket; @Override public void onCreate(Bundle savedInstanceState) { createSocket(); super.onCreate(savedInstanceState); } @Override public void onPause() { try { this.socket.disconnect(); } catch (IOException e) { e.printStackTrace(); } super.onPause(); } @Override public void onResume() { socket.connect(); super.onResume(); } public void createSocket() { this.socket = new […]

如何从客户端连接到服务器的Socket.IO

我正在为我的网站开发一个实时聊天networking应用程序。 我的服务器行为有点不同,我需要采取行动。 我有一个Apache的PHP服务器,哪个node.js是不兼容的。 我的节点服务器是公共的,但要连接,我必须从服务器命名客户端的目录,这意味着当我打开SERVER IP时,它将显示客户端。 我想上传客户端在另一个主机服务器上,并从那里连接到我的Socket.IO和节点服务器。 这是我的代码。 客户 <!DOCTYPE html> <html lang='en'> <head> <title>Chat</title> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js'></script> <script src='node_modules/socket.io/socket.io.js'></script> <script> var socket = new io.Socket("127.0.0.1", {port:911}); socket.connect(); //Once connected socket.on('welcome', function(data) { $('#log ul').append('<li>' + data.salutation + '</li>'); }); //Displayig the data from the server socket.on('data from server', function(data) { $('#log ul').append('<li>' + data.message + […]

socket.io客户端没有方法发出

使用http://cdn.socket.io/stable/socket.io.js中的socket.io.js版本稳定版,并尝试在google铬和firefox上build立连接。 var websocket = io.connect("http://nodetifications.no-ip.org:3030"); websocket.emit("usuarioConectado", "juanvilu" );</code> 显示以下错误: Uncaught TypeError: Object # has no method <Object> 'connect' (anonymous function) (anonymous function) jquery-latest.js: 586 jquery-latest.js jQuery.extend.globalEval: 587 jquery-latest.js jQuery.fn.extend.domManip: 6169 a.fn.extend.domManip jquery.tmpl.min.js: 10 jquery-latest.js jQuery.fn.extend.append: 5926 (anonymous function) jquery-latest.js: 6051 jquery-latest.js jQuery.extend.access: 835 jquery-latest.js jQuery.fn.extend.html: 6015 (anonymous function) jquery-latest.js fire: 1017 jquery-latest.js self.fireWith: 1127 jquery-latest.js […]

如何一起托pipe一个socket.io服务器和一个http服务器?

我有一个Socket.io服务器和一个基本的HTTP服务器,我编码在一起,但问题是,HTTP服务器试图服务于socket.io应该服务的请求。 码: //Dependences var sio = require('socket.io'); var http = require("http"); var NewRequestHandler = require('./NewRequestHandler').Handler; var DisconnectHandler = require('./DisconnectHandler').Handler; var AuthorisationRequestHandler = require('./AuthorisationRequestHandler').Handler; //The backlog of resources var ResourceBackLog; var ResourceRequestHandler = require("./ResourceRequestHandler").Handler; //Reports the IP adress and Port that it will run on. console.log('IP address: ' + process.env.IP); console.log('Port: ' + process.env.PORT); //Creates and […]

在监听自定义端口时,使用SSL(https)连接到Nodejs / Socket.IO服务器

我的socket.io服务器正在运行并监听端口6060。 现在,我添加到我的域名SSL证书,以通过https协议服务我的网站。 如果我试图通过http://mydomain.com:6060访问nodejs / socket.io服务器,我得到“欢迎使用socket.io”。 消息,但是当我用https://mydomain.com:6060这是不行的.. 连接到我的socket.io服务器(侦听端口6060)是否可以使用SSL? 在这种情况下我有什么select? 谢谢

从铁路调用Socket.io Active:loggingcallback或观察者

在LayerVault的好人发布了一个简单的方法来添加现有的Ruby应用程序的“实时”function,而不诉诸客户端MCV或重写整个应用程序在Node.js,前一阵子。 他们的post表明,只要你的rails 模型被更新,你可以更新到所有的客户端[参考1]通过delay_job&Active:Record Observer: class FileObserver < ActiveRecord::Observer observer :lv_file def after_commit(record) record.delay.report_updated end end 和 class LVFile < ActiveRecord::Base def report_updated Messenger.publish_message('file_updated', "file/#{self.id}") end end [参考文献1] http://layervault.tumblr.com/post/31462727280/rails-in-realtime-part-2 从客户端连接到socket.io服务器很容易。 但是我迷失在轨道服务器端如何实现Messenger.publish_message('file_updated', "file/#{self.id}") 。 在post中他们提到了这一点 report_updated方法调用一个单独的Messenger类 (我们的Web应用程序端的Socket.IO接口)的类方法调用,并报告文件已经改变到适当的房间。 但是我仍然不确定如何在Rails中实现Messager类,以便Active:Record Observer能够连接到我的socket.io服务器并发送更新。 [PS]在HN上的对话表明他们利用这个gem gem的维基甚至包括一个简短的演示: require 'SocketIO' client = SocketIO.connect("http://localhost", sync: true) do before_start do on_message {|message| puts message} on_disconnect {puts […]

node.jssubprocess和手动分离进程的区别?

我试图确定我的socket.io服务器的响应时间。 所以socket.io服务器只是回应一个消息,一个testing文件发送消息并logging发送和获取回显之间所需的时间。 为了模拟多个客户端,我使用一个manager文件中的child_process多次启动这个testing文件。 奇怪的是,我只用一个testing文件就得到了0.2的响应时间。 当我开始经理产生4个客户时,它达到了1.3,当我在两个分别的terminal上启动两个经理,每个客户有4个客户,每个客户达到3个左右。但是当我开始只有一个经理与10个客户(甚至达到疯狂像1000)结果保持在1以下。 为了再次certificate这一点: manager.js 4 -> spawns 4 childs manager.js 4 -> spawn 4 childs test.js -> shows around 3 avg. response time manager.js 10 -> spawns 10 childs test.js -> shows around 0.5 avg. response time 那么为什么多个分开的电话产生4个孩子更多的负载,然后一个电话与许多孩子? 这是我的经理文件产卵孩子: var count = process.argv[2] || 1; console.log("generating " + count + " childs"); […]

testing套接字是否仍然打开

按照我上一个问题的说明 ,我现在在socket.io中有一组连接的用户。 我的问题(我在答案中被警告)是,甚至在浏览器断开之后,套接字仍然保留在这个数组中。 我尝试从socket.on('disconnect'函数中删除数组中的socket.on('disconnect' ,但是在浏览器断开连接并且socket.io触发断开连接之间仍然存在〜1分钟的延迟。 什么是“testing”一个套接字来查看它是否真正活着的最好方法? 我很想尝试发送消息并捕获任何错误,但我觉得有一个更优雅的解决scheme。