Articles of sockets

CORS用node.js和socket.io阻塞

我最近开始学习node.js和socket.io。 我跟着一个简单的教程,socket.io有,而且在我的电脑上运行,一切正常。 但是,我决定将客户端部分上传到服务器进行testing,这就是问题出现的地方。 我想在Web主机上运行聊天客户端,然后在我的计算机或其他主机上运行服务器。 基本上,我计划端口转发服务器,并让客户端运行在网页上。 我打开我的端口端口转发,似乎工作,但我每次都在网页上的错误。 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://24.151.51.34:3000/socket.io/?EIO=3&transport=polling&t=1437399007343-0. (Reason: CORS request failed). 我一直在搞乱代码,希望能够在开始自己的项目之前find解决这个问题的办法,但是我找不到一个办法。 客户端代码是: <!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font: 13px Helvetica, Arial; } form { background: #000; padding: 3px; […]

如何创build一个侦听文件描述符的Python套接字服务器?

我正在尝试使Javascript(Nodejs)应用程序与Python应用程序进行通信。 我得到了一些使用绑定到我的本地主机和特定端口的套接字工作 。 为了使事情变得简单(例如,当部署到可能不允许我监听多个端口的环境中)时,我想改变我的实现来使用绑定到文件描述符的套接字。 我search高低,但我发现所有的例子使用端口。 基本上我需要从Nodejs文档 (指定path的版本)的这个例子的Python服务器计数器部分: var client = net.connect({path: '/tmp/echo.sock'} 。 有人请提供一个简单的例子,显示,创build和绑定一个文件描述符套接字,并在其上处理数据和/或指向正确的方向?

socket.io/?EIO=3&transport=polling&t=1345678不收费

我使用node.js,express和socket.io进行了聊天。 这是app.js代码: var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(process.env.PORT || 8080); app.use(express.static(__dirname + '/')); io.on('connection', function(socket){ socket.on('message sent', function(data){ io.emit('receive', { msg: data.msg, uname: data.uname, uid: data.uid, uimg: data.uimg }); }); socket.on('message sent room', function(data){ console.log(data.mid); io.in(data.uroom).emit('receive', { msg: data.msg, uname: data.uname, uid: data.uid, uimg: data.uimg, mid: data.mid […]

使用socket.ioparsingcookie

我试图正确地读取我的节点服务器上通过浏览器控制台localhost:3000上设置的cookie,如下所示: document.cookie = "tagname = test;secure"; document.cookie = "hello=1" 在我的节点服务器上,我使用sockets.io,当我得到一个连接请求,我可以访问一个属性,如下所示: socket.request.headers.cookie 这是一个string,我总是看到这样的: 'io=QhsIVwS0zIGd-OliAAAA' //what comes after io= is random. 我试着翻译它与各种模块,但他们似乎无法parsingstring。 这是我最近的尝试: var cookie = require('cookie'); io.sockets.on('connection', function(socket) { socket.on('addUser', function(){ var a = socket.request.headers.cookie; var b = cookie.parse(a); //does not translate console.log(b); }); } 我显然希望得到一个对象,包含浏览器上每个io.connect发送的所有cookie。 我一直试图解决它5个小时,我真的不知道我在这里做错了什么。

如何区分socket.io聊天中的Symfony用户angular色/组

我一直在玩socket.io的聊天,我有一个问题:如何区分pipe理员用户和聊天室中的普通用户? 我希望pipe理员拥有踢人和禁止的权力,但我的用户不能。 我正在使用Symfony来开发我的应用程序,我想用聊天用户的用户数据库。 我为我的Symfony应用程序的用户使用FOSUserBundle 。 他们分成多个组,所以我有admin组和其他人。 admin组具有ROLE_ADMIN ,这意味着其中的每个用户都具有该angular色。 这是pipe理员组,并且该组中的每个用户都应该有权禁止,踢,静音等聊天室中的其他用户。 为了在聊天中使用我的Symfony用户,我一直在阅读Redis以获得他们的会话,但是我不确定如何区分我的pipe理员用户和普通用户。 我怎样才能防止普通用户向服务器发出一个用户无法访问的请求? 因为任何人都可以提出请求,但是如果他们来自存储在Apache服务器上的MySQL数据库中的用户, 我怎么能validation这些请求呢? 如果不是Symfony,那么这可以在一个普通的PHP应用程序中完成? 最后,pipe理员如何定义并不重要,而是如何将他连接到节点服务器以及如何使节点服务器与我的用户数据库一起工作。 我有一个简单的encryption和发送用户的数据到节点服务器,然后在那里解密的想法。 只有两台服务器知道私钥,所以即使客户端掌握了encryption的数据,也不能向另一个客户端发出请求。 我可能会做一些IP检查和时间戳。 然后可以使用节点服务器上的解密数据来说明用户是否是pipe理员,并允许他发送某些请求。 这是一个好主意还是有更好的办法?

Android应用程序使用Socket.io连接到Node.js服务器

我无法让我的Android应用连接到socket.io聊天服务器。 我使用Gottox创build的socket.io-java-client,可以在这里find: https : //github.com/Gottox/socket.io-java-client 服务器通过端口7000本地运行。我正在使用android模拟器,所以我使用10.0.2.2:7000来访问服务器。 任何帮助将不胜感激,我没有太多的SSL经验。 如果我find一个工作解决scheme,我也会发布它。 Node.js服务器 var express = require('express'); var app = express(); var server = require('http').createServer(app).listen(7000); var io = require('socket.io').listen(server); io.sockets.on('connection', function(client){ client.on('message', function(err, msg){ client.broadcast.emit('message', msg); }); }); 的package.json { "name": "simplechat", "version": "0.0.1", "main": "app.js", "dependencies": { "express" : "~4.0.0", "socket.io" : "~0.9.13" } } Android:SendMessageActivity public class […]