Articles of websocket

如何通过socket.io设置一个安全的websocket(ssl / wss)?

一切正常,没有ssl连接。 在我设置之后回复的回复: socket.io-1.4.5.js:1 GET https://domain.com:3000/socket.io/?EIO=3&transport=polling&t=LILwU3l net::ERR_INSECURE_RESPONSE 服务器 node.js v.6.1 的package.json { //…, "dependencies": { "socket.io": "1.4.5" } } server.js 看看如何声明socket.io解决了如何创build一个服务器: https : //github.com/socketio/socket.io/blob/master/lib/index.js#L212 const fs = require('fs'), https = require('https').createServer( { // certificate by godaddy (G2) key : fs.readFileSync('/etc/ssl/private/domain.key'), cert: fs.readFileSync('/etc/ssl/certs/domain.crt') }, (req, res) => { res.writeHead(404); res.end(); }).listen(3000), io = require('socket.io')(https); io.on('connection', (socket) => […]

节点js服务器不工作

我正在尝试使用ws模块构build一个节点js服务器。 但它不工作。 它说升级需要。 我的服务器端代码: var WebSocketServer = require('ws').Server; wss = new WebSocketServer({port: 8080}); wss.on('connection', function(ws) { ws.on('message', function(message) { console.log('Msg received in server: %s ', message); }); ws.send('Msg from server'); }); 客户端代码: var WebSocket = require('ws'); var ws = new WebSocket('ws://localhost:8080/'); ws.on('open', function() { ws.send('Msg from client'); }); ws.on('message', function(data, flags) { console.log('Msg received in […]

Socket.io websocket错误ENOENT

我在我的nodejs服务器上使用socket.io,它在开发环境中工作正常。 但是,当我将其部署在生产服务器上时,它开始出现以下错误: Connection Error { [Error: websocket error] description: { [Error: connect ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'connect', target: { domain: null, _events: [Object], _maxListeners: 10, _socket: null, _ultron: null, _closeReceived: false, bytesReceived: 0, readyState: 0, supports: [Object], extensions: {}, _isServer: false, url: 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket', protocolVersion: 13, binaryType: 'buffer' } } } 我的服务器端代码如下: var server […]

Socket.io可能发出错误吗? 如果波动?

我一直在四处寻找一个明确的答案,但我似乎不断find矛盾的答案( 这个和这个 )。 基本上,如果我 socket.emit('game_update', {n: 1}); 从一个node.js服务器,然后,20毫秒后, socket.emit('game_update', {n: 2}); 从同一台服务器,有没有任何方式,n:2消息之前到达n:1消息? 换句话说,如果n:1消息以某种方式在途中丢失,n:1消息是否“阻止”n:2消息的接收? 如果他们是挥发性排放呢? 我的理解是n:1消息不会阻塞n:2消息 – 如果n:1消息被丢弃,n:2消息在它到达时仍然会被接收。 背景:我正在构build一个node.js游戏服务器,并希望更好地了解我的游戏更新是如何旅行的。 我现在使用volatile发射,我想提高服务器的跳动速度,但我想确保独立的游戏更新不会互相阻塞。 我宁愿客户端每隔30毫秒收到一次更新,在这里和那里分布的一些丢弃更新比客户端收到更新,200毫秒没有收到任何东西,然后一次接收6个更新。

从Java应用程序连接到webSocket

我尝试从java SE应用程序连接到运行在nodeJS服务器上的webSocket。 我使用这个https://github.com/TooTallNate/Java-WebSocket库,但我有一个问题。 我可以连接和发送消息从服务器到客户端,但我不能从客户端到服务器。 这里是我使用的代码: 的NodeJS const WebSocketServer = require('ws').Server var wss = new WebSocketServer({ server: http }) wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('something'); }); JAVA try { WebSocketClient mWs = new WebSocketClient( new URI( "ws://localhost:8080" ), new Draft_10() ) { @Override public void onMessage( String message ) […]

使用websocket和nodejs时,文件描述符的编号会增加

我正在使用Websocket库ws npm在5001和nodejs为80端口通信。 我的问题是在一段时间内文件描述符的数量增加,导致更多的内存消耗。 以下是我的代码。 var SOCKETS = []; //Used for publish URL var app = https.createServer(options, function(req, response){ log.debug("connection:"+ req.url); var path = url.parse(req.url,true).pathname; log.debug('path:'+path); //response.writeHead(200,{ 'Content-Type': 'text/html' }); switch(path){ case '/push': client.send(user_message); response.writeHead(200,{ 'Content-Type': 'text/json' }); response.write(JSON.stringify({ 'userids': valid_users})); break; } // Send HTML headers and message response.end(''); }); app.listen(config.websocket_port); var WebSocketServer = require('ws').Server […]

React-Native和AutobahnJS

我正尝试使用npm包react-native-autobahnjs在React-Native应用程序中与WebSocket服务器build立连接。 这是我的代码: import autobahn from 'react-native-autobahnjs'; class websocket extends Component { componentWillMount () { console.warn("MOUNTING MAIN COMPONENT"); const connection = new autobahn.Connection({ url: 'wss://myserver/ws', realm: 'realm1' }); connection.onopen = () => { console.warn("onopen"); }; connection.onclose = (reason, details) => { console.warn("onclose : reason = " + reason + ", details = " + details); }; […]

桌面stream媒体到一个HTMLvideo标签

我正在试图build立一个网站,用户可以将他们的屏幕分享给其他用户。 我做了一个Chrome扩展,使用navigator.webkitGetUserMedia来获取按下button的用户的屏幕。 目前我只使用URL.createObjectUrl(stream) (其中stream是我从webkitGetUserMedia获得的stream)获取BLOBurl,然后设置video标签的src等于这个url。 显然这只显示给按下button的用户的屏幕。 不过我想知道如何让所有的用户都能看到这个stream。 我曾尝试通过socket.io将URL发送给其他用户,但他们无法访问BLOB。 任何想法,我如何使这项工作?

禁用默认名称空间或断开socket.io中的所有套接字连接到默认名称空间

我有一个在节点上运行的socket.io服务器,我允许不同的第三方应用程序连接到不同的名称空间。 我不希望任何人通过打算永久禁用默认命名空间或者断开与默认命名空间连接的所有套接字来连接到默认命名空间/那里 以下是我的代码部分: 服务器端: var io = require('socket.io')(http); var nsp={}; var namespaces = ["/news","/world","/chat"]; for(var i=0;i < namespaces.length;i++){ namesp = namespaces[i]; nsp[namesp] = io.of(namesp); nsp[namesp].on('connection', function(socket){ // some code here }); } 如果我尝试使用上面的代码连接到默认命名空间,它仍然接受连接。 在服务器中添加了以下代码: io.of("/").on("connection", function(socket){ socket.disconnect("unauthorized"); }); 如果定义了所有的连接,则转到上面的代码。 所以不能单独closures默认命名空间连接的套接字。 我也尝试使用删除默认名称空间 delete io.nsps['/']; 似乎没有工作。 我是socket.io的新手。 任何解决scheme来解决它?

如何使websocket服务器在路由器?

我正在使用nodejs-ws模块编写一个websocket服务器,但服务器只能在服务器的根目录下,所以我可以如何在localhost:3000 / chat这样的子路由器上创build它? 我需要你的帮助,非常感谢!