Tag: socket.io

是否可以将React Native与socket.io结合使用

我正在开发一个Phonegap + React.js和Socket.io的应用程序。 然而,那么React-Native就被释放了,原生的感觉是惊人的。 我试图让socket.io客户端与React Native工作,但不幸的是没有太多的成功。 我做了一些研究,并得到了与本问题中所述完全相同的错误: https : //github.com/facebook/react-native/issues/375 关于这个问题的评论说,尝试使用获取API来获取JS模块,但我认为我做错了: var socketScript; fetch('https://cdn.socket.io/socket.io-1.2.0.js') .then(function(response) { socketScript = response._bodyText; }).done(function() { var socket = socketScript.io(); }); 这返回一个undefined不是一个函数 。 有什么办法让socket.io-client与React Native一起工作吗? 还是我看着这个错误的方式? 也许还有其他更合适的解决scheme?

使用共享会话数据的socket.io身份validation,io.use()如何工作

受到如何与Socket.IO 1.x和Express 4.x共享会话的启发? 我以某种“干净”的方式实现了套接字authentication,不需要使用cookieparsing器,也不需要从头文件中读取cookie,但是对于我来说很less有东西不清楚。 示例使用上一个稳定的socket.io版本1.3.6。 var express = require('express'), session = require('express-session'), RedisStore = require('connect-redis')(session), sessionStore = new RedisStore(), io = require('socket.io').listen(server); var sessionMiddleware = session({ store : sessionStore, secret : "blabla", cookie : { … } }); function socketAuthentication(socket, next) { var sessionID = socket.request.sessionID; sessionStore.get(sessionID, function(err, session) { if(err) { return next(err); } […]

如何区分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理员,并允许他发送某些请求。 这是一个好主意还是有更好的办法?

如何通过带有node.js和socket.io的WebSocketsstream式传输MP3数据?

我有问题通过WebSocket与node.js和socket.iostreamMP3数据。 一切似乎工作,但decodeAudioData不公平对我来说。 这是我的玩具服务器: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8081); function handler (req, res) { res.writeHead(200, { 'Content-Type': 'text/html', }); res.end('Hello, world!'); } io.configure('development', function() { io.set('log level', 1); io.set('transports', [ 'websocket' ]); }); io.sockets.on('connection', function (socket) { console.log('connection established'); var readStream = fs.createReadStream("test.mp3", {'flags': 'r', 'encoding': 'binary', 'mode': […]

无法在Windows 7上安装socket.io

我是Node和NPM的新手。 我使用Node v0.10.0,当我运行npm install socket.io命令时,出现以下错误: C:\Users\USER\AppData\Roaming\npm\node_modules\socket.io\node_modules\socket.io- client\node_modules\ws>node "C:\Users\USER\AppData\Roaming\npm\node_modules\npm\ bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(29 7,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version nu mber. [C:\Users\USER\AppData\Roaming\npm\node_modules\socket.io\node_modules\so cket.io-client\node_modules\ws\build\bufferutil.vcxproj] bufferutil.cc c:\users\user\.node-gyp\0.10.0\deps\uv\include\uv-private/uv-win.h(32): fatal e rror C1083: Cannot open include file: 'winsock2.h': No such file or directory [ […]

多人游戏HTML5,Node.js,Socket.IO

我尝试用HTML5 Canvas,JavaScript(使用John Resig简单的inheritance库)和Node.js与Socket.IO创build简单的多人游戏。 我的客户代码: var canvas = document.getElementById('game'); var context = canvas.getContext('2d'); var socket = new io.Socket('127.0.0.1', {port: 8080}); var player = null; var UP = 'UP', LEFT = 'LEFT', DOWN = 'DOWN', RIGHT = 'RIGHT'; socket.connect(); socket.on('connect', function() {socket.send(); console.log('Connected!'); player = new Player(50, 50); }); socket.on('message', function(msg) { if(msg == 'UP') { player.moveUP(); […]

处理浏览器重新加载socket.io

socket.io中有一种方法在断开的事件中创build一个超时,然后检查用户是否已经重新连接? 这个想法是只有当用户在超时之后没有重新连接时才发送数据/保存数据库中的用户状态 编辑 :遵循@Are Wojciechowski答案,我完成了一个多标签&F5洪水处理程序 https://gist.github.com/foohey/7696811

意外的响应代码:与AppFog使用socket.io时出现502错误

错误 当用户打开http://sync.aws.af.cm/时 ,Google Chrome JavaScript控制台会在几秒钟内显示: Unexpected response code: 502 error 应用程序应该记住文本区域的内容,即使用户刷新页面。 该应用程序在本地工作,但不是当我上传到AppFog,我怀疑问题是502错误。 你知道在这种情况下可能会导致这个错误吗? 我试过了 我尝试将script src=<path_to_socket_io>path在我的客户端从/socket.io/socket.io.js为node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js ,如此处所述,但没有帮助。 我也尝试在Heroku而不是AppFog上提供应用程序,但是在这种情况下,我仍然遇到了这里描述的问题,即使我指定了socket.io版本0.9.6。 我也看了以下问题,但迄今为止的意见似乎并没有帮助我。 socket.io在连接/ websocket上创build502错误的网关无效 Socket.IO node.js websocket连接无效的端口8081 socket.io与node.js不按预期工作 相关的服务器代码 这里是相关的服务器代码: var server = http.createServer(function (req, res) { … }); var io = require('socket.io').listen(server); // Define events that can be triggered by the client io.sockets.on('connection', function (socket) { socket.on('setServerVariable', […]

Socket.IO错误“listen()”方法需要转移到Express 3.0后的“http.Server”实例

我从字面上开始学习Node.js,我有点卡住了。 遵循这个例子,当我尝试执行js文件时,出现以下错误: Warning: express.createServer() is deprecated, express applications no longer inherit from http.Server, please use: var express = require("express"); var app = express(); Socket.IO's `listen()` method expects an `http.Server` instance as its first parameter. Are you migrating from Express 2.x to 3.x? If so, check out the "Socket.IO compatibility" section at: https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x info – socket.io […]

如何使用Express / Socket.io在Node.js上使用HTTPS

我试图用https运行我的节点服务器。 我使用express和socket.io。 这是我的代码https: var httpsPort = 443; var privateKey = fs.readFileSync(mykeypath'); var certificate = fs.readFileSync(mycertificatepath'); var credentials = {key: privateKey, cert: certificate}; var https = require('https').Server(credentials,app); var io = require('socket.io')(https); https.listen(httpsPort, function(){ logger.info('listening on *:' + httpsPort); }); app.get('/initGame', function (req,res){ var slots = require('./slots.json', 'utf8'); var userObject = { address : req.connection.remoteAddress, userAgent : […]