Tag: socket.io

使用socket.io来连接nodejs服务器和golang服务器有什么缺点?

我正在从事包括可视化在内的Web应用程序 – 饼图,酒吧,网格等 注意: 应用包括 两种技术nodejs和golang 。 Nodejs用于执行简单的操作,路由,validation等 Golang用于数据库连接,处理数据等 build筑/stream程: 客户端(angularjs)将与nodejs服务器通信。 Nodejs将使用socket.io与golang服务器通信以获取处理的数据。 Nodejs在从golang获取处理后的数据之后会响应客户端。 这是我的问题 在这种情况下使用socket.io有什么缺点吗? 任何build议或想法将不胜感激。

在Node.js中如何从处理程序/callback方法发送消息到客户端

我是node.js的初学者。 我正在尝试使用node.js创build一个webapp,它将在云中创build服务器并对其进行pipe理。 在做了一些研究之后,我决定使用node.js,socket.io,express和pkgcloud模块来创buildwebapp。 现在,我面临的问题是,当服务器创build时,我无法将消息发送到前端/客户端。 服务器正在成功创build,但我不知道如何将服务器状态发送到浏览器屏幕。 这是代码:index.js var express = require('express'), app = express(); app.use(express.static(__dirname + '/')); var io = require('socket.io').listen(app.listen(1337)); io.sockets.on('connection', function(socket) { socket.on('mesg_to_server', function(data) { // This is for testing whether we're receiving msgs on client side io.sockets.emit("mesg_to_client",{ mesg: data["mesg"], mesg1: data["mesg1"] }); var Rackspace = require('./ex_rackspace'); var rackspace = new Rackspace(); rackspace.create(data.mesg); }); […]

消息监听器上的Redis被触发两次

我正在使用NodeJS和Redis聊天应用程序,为什么我使用Redis订阅,因为我需要通知其他用户,当我用户login时,我的问题开始时,用户login第一次工作正常的消息listener调用了一次,但是当同一个用户刷新页面时,我发现这个publish方法已经被调用了两次。 以下是我使用的代码示例: var redisClient = redis.createClient({ auth_pass: password }); var myServer; myServer = require('http').createServer(app); var socketIo = require('socket.io').listen(myServer); myServer.listen(port); redisClient.subscribe('myChannel'); socketIo.on('connection', function(dbSocket) { var redisClient2 = redis.createClient({ auth_pass: password }); /***Code for handle request***/ } redisClient.on('message', function(channel, message) { //When refresh page , and I call publish method , the system enter message listener twice […]

Raspberry + socket.io在本地networking上工作,但不在外部工作

我有一个Raspberry Pi服务通过一个server.js文件的HTML页面。 主线(不是所有的代码)是: var app = require('http').createServer(handler); var io = require('socket.io').listen(app); … app.listen(8000); … fucntion handler(req,res) { fs.readFile(__dirname+'/../index.html' function(err,data) { … io.sockets.on('connection', function (socket) { setInterval(function(){ … socket.emit('tempUpd',date,temp); }, 2000); }); 在index.html上: <head> … <script src="/socket.io/socket.io.js"></script> … </head> <body> <div id="info"></div> — <script> var socket = io.connect('http://192.168.1.6:8000'); socket.on('tempUpd', function(date, temp){ document.getElementById("info").textContent = temp; }); … […]

信息 – 未处理的socket.iourl

我试图使用套接字来连接到一个节点服务器我运行本地化,但我一直在'info – unhandled socket.io url'在服务器端+ "XMLHttpRequest cannot load http://localhost:8080/socket.io/?EIO=3&transport=polling&t=1424356590540-0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access." 在铬上(使用地址localhost:8000/index.html ) // top six lines of code to see setup var express = require('express'), app = express(), http = require('http'), server = http.createServer(app), io = require('socket.io').listen(server); server.listen(8080); 我也在端口8000上使用python SimpleHTTPServer […]

节点新手 – 要求的目的('快递')

在以下简单的socketIo服务器中,任何节点忍者都可以解释第一行的目的。 我没有使用快递实际上创build基于http的服务器,所以它会工作得很好,没有? 有点困惑… var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(8080); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { console.log('connection '+socket); socket.on("data",function(d){console.log('data from flash: ',d);}); socket.emit("message","hello from server"); socket.emit('news', { hello: 'world' }); socket.on('disconnect', function (data) { console.log(' disconnect'); }); });

使用来自GET请求的数据而无需用户的页面重新加载

所以,这个主题是Node.js + express + ejs + socket.io + mongoose所有最新版本的单页网页应用程序。 让我们想象一下用户在他的浏览器的地址栏“www.app.com/ data ”中的input。 我想根据这个数据从db中获取响应,并把它发回给用户,并为他提供基本的“www.app.com”页面,并在其中执行db响应。 我很好奇两个select:什么是最好的方式来做到这一点与没有页面重新加载,例如,如果用户已经在网页上,我不想重新加载它 – 只是相应地改变数据库响应。 我可以从他的获取请求中获取这些数据: app.get('/:id', function (req, res) { console.log('got' + req.params.id); ///some db magic here… poof, response ready/// }) 但接下来我做了什么? 我正在考虑通过sockets.io发送响应,但是我怎么才能在不重新加载用户页面的情况下结束这个GET? 如果我必须发回一些东西,我可以通过ejs再次渲染这个页面来做出回应,但是当我重新加载的时候,我不能依靠sokets,cos。 你能解释我的困惑吗?

SocketIO断开离开套接字侦听

我正在尝试使用SocketIO与Redis Pub / Sub结合来监视我的应用程序中的事件。 到目前为止,我有如下的服务器的东西 io.on 'connection', (socket) -> log.info "Connection established. [Socket: #{socket.id}]" socket.on 'join_room', (roomName) -> log.info "Join room '#{roomName}'. [Socket: #{socket.id}]" socket.join roomName redis.on 'message', (redisChannel, message) -> message = JSON.parse message log.info "Room: #{message.room} – Event: #{message.event} – Message: #{message.message}" io.sockets.in(message.room).emit(message.event, message.message) socket.on 'disconnect', -> log.info "Connection destroyed. [Socket #{socket.id}]" 然后,在客户端,我有 […]

让教程SocketIO工作

我正在试图从我的域名上运行的SocketIO的例子。 我已经设法通过命令行来安装Node.JS以及ExpressJS和SocketIO。 现在,我试图让这个运行。 在服务器端我有: (位于/ nodejs中,与/ public_html处于同一级别,不在其中) var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); 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); }); }); 然后在客户端我有: (位于/public_html/socketio.htm) <!DOCTYPE html> <head> <title>Socket IO Test</title> […]

node.js,socket.io只能在本地工作,不能从内网系统访问

我使用node.js和socket.io为实时通知系统,所以我已经testingnode.js和socket.io与简单的聊天代码,它与本地主机相当不错,但不能从另一个系统访问相同本地连接到同一networking,我的服务器和客户端代码如下所示 server.js var express = require('express') , app = express() , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server); server.listen(8888); 和客户端html index.html <script src="http://localhost:8888/socket.io/socket.io.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> <script> var socket = io.connect('http://localhost:8888'); </script> 它的工作在我的浏览器与此urlhttp://localhost/schat/index.html但不工作时,我试图连接从另一个系统使用我的IP 192.171.56.23/schat/index.html但所有其他的HTML文件工作好,下面是我的netstat输出 [root@localhost schat]# netstat -pan | grep 8888 tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 8068/node tcp 0 0 127.0.0.1:8888 […]