Tag: websocket

videostream通过Websocket到<video>标签

我使用Node.js通过Websocket实时webmvideostream到一个网页,将在一个标签中播放它。 以下是来自服务器和客户端的代码: 服务器: var io = require('./libs/socket.io').listen(8080, {log:false}); var fs = require('fs'); io.sockets.on('connection', function (socket) { console.log('sono entrato in connection'); var readStream = fs.createReadStream("video.webm"); socket.on('VIDEO_STREAM_REQ', function (req) { console.log(req); readStream.addListener('data', function(data) { socket.emit('VS',data); }); }); }); 客户: <html> <body> <video id="v" autoplay> </video> <script src='https://localhost/socket.io/socket.io.js'></script> <script> window.URL = window.URL || window.webkitURL; window.MediaSource = window.MediaSource || […]

在服务器发送的JavaScript代码上安全使用eval()

我正在使用Node.js和Socket.io。 我写了一个应用程序,可以从服务器发送JavaScript片段,并在客户端执行它们。 JavaScript通过Secure WebSocket(WSS)发送,客户端有一个监听器,它将执行通过服务器传递给它的任何代码。 这个简短的脚本演示了原理: http : //jsfiddle.net/KMURe/你可以把onScript函数想象成套接字监听器。 题 我可以使用哪些安全协议来保证交易安全? 一个安全的websocket通道是否会使第三方难以充当中间人(在将代码发送给客户端之前更改代码)? 一些用例 dynamic分配的分布式计算。 浏览器客户端可以从服务器dynamic学习。 一致更新浏览器行为。

节点代理networking套接字如何检查

我使用下面的模块,它适用于反向代理https://github.com/nodejitsu/node-http-proxy目前我已经使用下面的代码示例 httpProxy.createServer({ target: 'ws://localhost:9014', ws: true }).listen(8014); 我的问题是我如何检查/模拟 websockets工作? 任何testing将有帮助…

是否有可能使用WebSockets或类似的本地Android应用程序?

我有一个使用HTTP / REST(使用Express.js)的Node.js应用程序,以及与之通信的本地Android应用程序。 这工作正常。 我现在正在考虑编写一个更实时的版本,可以将消息推送到本地客户端。 不幸的是,它需要成为一个本地客户端,因为在移动浏览器中,对于未来可能性来说,数据完成了一些相当复杂的工作(否则,我会等待WebSockets支持出现在Android浏览器中)。 所以,我的问题是我的select是什么? 我了解Android Cloud到设备消息传递框架,但是这需要注册和Googlelogin,我更希望服务器是客户端不可知论者。 有一个可靠的WebSocket客户端,我可以使用(理想情况下)与运行Socket.io的Node.js服务器交谈? 或者其他的本地方法(使用NIO类)?

Ajax与Socket.io

我正在开发一个Web应用程序,我想知道哪种方法应该适合我的项目。 基本上我想显示给用户的是从请求到其他服务器的一些通知。 我的node.js应用程序获取所有的信息,然后传播给用户,保存到我的MongoDB副本。 这个想法很简单,但阅读有关方法,我发现这两种技术: Ajax:如果服务器上有新的内容,客户端将全部检查。 这将通过使用jquery ajax到我的服务器API(每30/60秒)完成。 Socket.io:客户端连接一次,然后维持永久的TCP连接(更实时)。 现在我已经说明了情况,我有以下问题: 我不会有太多的请求与Ajax? 想象一下,如果我们将应用程序扩展到100个用户,每分钟都会给服务器一个检查,那么每分钟会给我100个查询。 有一个套接字是否会在系统资源中“便宜”? socket.io会成为移动设备的问题吗? 带宽和性能。 服务器的响应始终是JSON格式的信息。 我读了now.js可以用于这个,但似乎该项目不再支持,所以不知道如果使用它将是一个好主意。 这两种方法如何caching? 我正在考虑为每个用户创build一个caching文件,这将由服务器端的node.js更新。 我想这可以用ajax很好的工作,但是socket.io呢? socket.io是否与许多浏览器不兼容? 我的应用程序将更专注于移动设备,我想这可能会让我考虑select阿贾克斯反而。 有其他build议吗? 我希望这可以清除我的头脑和其他人在相同的情况:)谢谢

socket.on('连接'…事件永远不会触发nodejs + express + socket.io

问题 socket.io不工作 细节 用express [folder]; cd [folder]; npm install;生成一个项目express [folder]; cd [folder]; npm install; express [folder]; cd [folder]; npm install; 安装socket.io npm install socket.io 运行下面的代码节点应用程序 客户端连接事件触发,但服务器连接从未被解雇。 build立 服务器 AWS免费套餐,Ubuntu 11.10,ami-a7f539ce nodejs v0.6.5 express v2.5.1 socket.io v0.8.7 客户 var socket = io.connect('http://example.com:3000'); socket.on('connect', function() { console.log('connected'); }); socket.on('message', function(msg){ console.log(msg); }); socket.on('disconnect', function() { console.log('disconnected'); }); […]

如何检测用户的连接丢失或者他closures了Nodejs socket.io中的浏览器窗口

我有一个Node.js和Socket.io上的聊天应用程序,用户可以连接和断开一个button…我有一个在线用户列表,这是我的定义的事件,用户触发的帮助下完美pipe理。 但问题是我无法检测用户是否已经失去了他的连接或closures浏览器窗口,而不必手动断开自己(通过断开button)… 这个socket.io事件只有当用户断开自己而不是当他失去连接时才会触发。 socket.on('disconnect',function(){ console.log('user disconnected'); }); 我想要一些非常好的机制来关注用户,以更新我的在线用户列表。

使用节点http-proxy来代理websocket连接

我有一个应用程序通过socket.io使用websockets。 对于我的应用程序,我想使用单独的HTTP服务器为我的应用程序提供静态内容和JavaScript。 因此,我需要设置一个代理。 我正在使用node-http-proxy 。 作为一个起点,我有我的websockets应用程序运行在端口8081.我正在使用以下代码重新socket.io通信到这个独立的服务器,而使用快递服务的静态内容: var http = require('http'), httpProxy = require('http-proxy'), express = require('express'); // create a server var app = express(); var proxy = httpProxy.createProxyServer({ ws: true }); // proxy HTTP GET / POST app.get('/socket.io/*', function(req, res) { console.log("proxying GET request", req.url); proxy.web(req, res, { target: 'http://localhost:8081'}); }); app.post('/socket.io/*', function(req, res) { […]

Node js – Socket.io-client没有连接到socket.io服务器

我正在尝试使用以下代码连接到一个socket.io客户端: 服务器: // Load requirements var http = require('http'), io = require('socket.io'); // Create server & socket var server = http.createServer(function(req, res){ // Send HTML headers and message res.writeHead(404, {'Content-Type': 'text/html'}); res.end('<h1>Aw, snap! 404</h1>'); }); server.listen(8080); io = io.listen(server); // Add a connect listener io.sockets.on('connection', function(socket) { console.log('Client connected.'); // Disconnect listener socket.on('disconnect', function() { […]

node.js – 使用头盔修正socket.io(web套接字)的内容安全策略

我试图在节点服务器中实现内容安全策略(CSP),并且在设置socket.io时遇到困难。 它看起来像我在下面的代码中设置不正确的connectSrc 。 有人可以build议正确的方式来设置头盔,以便浏览器允许Web套接字连接吗? 提前致谢! 我正在使用头盔模块生成CSP; 以下是设置CSP的代码: securitySetup = function(app) { var connectSources, helmet, scriptSources, styleSources; helmet = require("helmet"); app.use(helmet()); app.use(helmet.hidePoweredBy()); app.use(helmet.noSniff()); app.use(helmet.crossdomain()); scriptSources = ["'self'", "'unsafe-inline'", "'unsafe-eval'", "ajax.googleapis.com"]; styleSources = ["'self'", "'unsafe-inline'", "ajax.googleapis.com"]; connectSources = ["'self'"]; return app.use(helmet.contentSecurityPolicy({ defaultSrc: ["'self'"], scriptSrc: scriptSources, styleSrc: styleSources, connectSrc: connectSources, reportUri: '/report-violation', reportOnly: false, setAllHeaders: false, safari5: false […]