Articles of 套接字

来自服务器套接字连接的实时图表数据?

我知道一个使用socket.io的网站 我想知道什么最好的套接字应用程序模板是连接到服务器作为客户端,然后接收所有的信息,并根据用户(我)select的json中的对象实时绘制图表。 只是一个简单的折线图,您可以在其中指定希望从套接字源中显示哪些对象。 我之前从来没有使用过套接字,在Google整天阅读完教程之后,我想确定这是甚至可能的,而我不是在寻找一些不存在的东西。 谢谢你,恩 。

Socket.IO手动“断开”和var范围发射?

有人可以解释如何脱节工程? 在我的控制台日志中,断开连接function在客户端离开游戏时被调用两次。 为什么是这样? 当它发生时,似乎playerName的范围在第二个调用中也是已知的,但不是第一个。 这是打这些电话的客户吗? 另外,它如何知道该范围内的playerName,但在send-message它不知道什么是playerName? (1是playerName) Oct 06 11:57:36 overwatchtracker app/web.1: [RECV] Player disconnected: 1 Oct 06 11:57:36 overwatchtracker app/web.1: [RECV] Player disconnected: undefined Oct 06 11:57:29 overwatchtracker app/web.1: [RECV] Message: undefined asdfasdf 这是我的一些代码: const io = socketIO(server) var clients = [] io.on('connection', (socket) => { var playerName; socket.on('login-user', (name) => { playerName = […]

简单聊天应用程序与NodeJS

我是NodeJS的新手,开始学习构build一个简单的命令行聊天应用程序。 我有以下代码为服务器和客户端。 客户端 – 服务器通信成功,但我无法从客户端捕获“adduser”事件。 请告诉我哪里错了。 服务器: var net = require('net'); var chatServer = net.createServer(function(socket){ socket.pipe(socket); }), userName=""; chatServer.on('connection',function(client){ console.log("ChatterBox Server\n"); client.write("Welcome to ChatterBox!\n"); client.on('data',function(data){ console.log(""+data); }); client.on('adduser',function(n){ console.log("UserName: "+ n); userName = n; }); }); chatServer.listen(2708); 客户: var net = require('net'); var client = new net.Socket(); client.connect(2708,'127.0.0.1'); client.on('connect',function(){ client.emit('adduser',"UserName"); }); console.log("Client Connected!\n"); client.on('data',function(data){ console.log(""+data); […]

使用io.sockets.emit的套接字io

我是新来的Socket io的世界,并想知道如果他们是这样的安全问题: 我也使用Coffeescript。 服务器。 io.sockets.emit('UserInfo', {player1: AllData1, player2: AllData2}) AllData1基本上是player1的敏感信息,AllData2是player2的敏感信息。 客户。 myName = 'snugglePuff' socket.on('UserInfo', (data) -> if data.player1.name = myName alert(data.player1.secret) ) 所以我的问题是:当服务器广播到每个连接的套接字,将“player2”以某种方式使用他们的浏览器能够看到data.player1.secret?

Socket.io地理位置callback

使用Google地图API,我有几行代码可以在按下allow后检索用户的位置。 var geocoder = new google.maps.Geocoder; navigator.geolocation.getCurrentPosition(function(position) { var pos = { lat: position.coords.latitude, lng: position.coords.longitude – .12 }; map.setCenter(pos); var realCoords = { lat: position.coords.latitude, lng: position.coords.longitude }; geocoder.geocode({'location': realCoords}, function(results, status) { if (status === 'OK') { userCity = results[0].address_components[2].long_name; } }); }); 问题是,我有一个socket.io事件,当用户连接到页面,并需要从地理位置使用用户的城市发射权利。 不幸的是,这导致城市输出未定义,因为套接字函数在地理定位完成之前运行,查找用户的位置。 有反正使用callback,以便套接字事件只运行用户的位置后发现? 我们不想使用超时,因为这是同步的,并且时间量取决于该用户的地理位置有多快。 io.on("connection", function(socket) { console.log("Made socket connection", […]

socket.io获取连接的客户端数量的所有房间

我现在使用socket.io与多个节点,因此我开始使用socket.io-redis适配器( https://github.com/socketio/socket.io-redis )来帮助我在节点之间进行同步。 我想获得服务器上所有房间的列表以及每个房间中相应数量的客户端。 在任何时候,我可能有数以千计的房间,并希望快速计数每个房间。 要获得我要做的所有房间的清单: io.of('/').adapter.allRooms((err, rooms) => { console.log(rooms); // an array containing all rooms (accross every node) }); 这将返回所有房间的列表,但是现在我不确定每个用户有多less个连接。 然后,我可以运行下一个查询来分别计算每个房间的数量: //query the first room, second room and so on… io.in('firstroom').clients((err, clients) => { console.log(clients); // an array containing socket ids in 'room3'. Aggregate them to get the count }); 这似乎是非常低效的,因为我会打这么多的电话来单独计数。 有没有一个比这更有效的方法来获得所有的房间与相关的连接数清单? 我已经研究过修改适配器代码,但是我并没有真正理解代码以做出任何改变。

socket.io-如何传递套接字id作为查询参数?

当我console.log()它时,我能够获得客户端的套接字ID。 任何人都可以告诉我如何将它作为query param在下面提到的上下文中传递: var params = { userId: 5, userType: 2 }; // create a new websocket var socket = io.connect('http://localhost:8000', { query: params }); socket.on('connect', () => { console.log('okay '+socket.id); }); 在这个例子中,用户连接到服务器,并在build立套接字连接时传递一些值作为参数。 但是,我怎样才能传递套接字ID与他们? Socket IO版本:2. *

在3Gnetworking上监听来自连接对象的TCP连接

我有一个连接的对象,在3Gnetworking上工作,并发送数据到我的IP在一个可选的端口。 我想读一个node.js程序上的这个对象发送的数据,因为我的服务器上的所有API都在node.js上 为此,我尝试创build一个“networking”服务器,如下所示: var net = require('net'); var server = net.createServer(function (socket) { socket.on('data', function (data) { var StrData = data.toString('ascii'); fs.appendFile("test.txt","data received : "+ StrData, function (err) { if (err) throw err; console.log(StrData); }); }); }); server.listen(2000, '0.0.0.0'); 我将所有的数据发送到我的“test.txt”文件的想要的。 问题是,在接收到第一个数据后,我的服务器似乎closures了连接,所以我的连接对象每次都必须创build另一个连接,只能发送第一个数据。 我的问题是: 我怎样才能让连接打开,使对象可以发送所有的数据? 我也尝试过'socket.io'和'http',但我无法得到我想要的。

在通过file.createWriteStream()传输到GCP时,获取ESOCKETTIMEOUT,ECONNRESET或套接字会挂载大文件。

在尝试通过Google云端function将大文件(> 50MB)上传到Google云端存储时,根据我设置的选项,我遇到了这些例外: 当设置请求选项'永远:错误'我得到:错误:套接字挂断 当设置请求选项'resumable:true'时,我得到:Error:write ECONNRESET 当设置请求选项“可恢复:错误”我得到:错误:ESOCKETTIMEDOUT可恢复:假 这是我使用的代码: function uploadFile(bucketName, filename, data) { console.log("Starting uploading blob…"); const Storage = require('@google-cloud/storage'); console.log("Creating client…"); const storage = new Storage(); storage.interceptors.push({ request: function(reqOpts) { reqOpts.forever = false; return reqOpts } }); console.log("Getting bucket " + bucketName + "…"); const bucket = storage.bucket(bucketName); console.log("Creating file " + filename + "…"); […]

使用socket io在服务器上进行file upload

嗨,我是节点js和套接字io的初学者。 请给我build议使用套接字io和android的服务器上传文件的最佳方式是什么。 我想上传文件像what'sapp。 请帮帮我