Articles of 套接字

通过套接字连接将https代理请求pipe道传输到命名pipe道(node.js)

我正在尝试构build一个转发代理服务器,它可以请求一个http url,并将请求传递给在已命名pipe道上侦听的https服务器。 我知道我错过了一个步骤,但我不确定它是什么。 这是我正在尝试使用… function pipeToServer(browserRequest, browserSocket, browserRequestHead){ var targetUrl = url.parse('https://' + browserRequest.url); var namedPipe = getNamedPipe() console.log("Attempting to connect to " + namedPipe) var proxySocket = net.connect(namedPipe, function() { console.log("Connected to destination server: " + namedPipe) console.log("Sending head: " + browserRequestHead) browserSocket.write('HTTP/' + browserRequest.httpVersion + ' 200 Connection Established\r\n' +'Proxy-agent: Node-Proxy\r\n' + '\r\n'); […]

NodeJS的一个没有无状态的套接字解​​决scheme

我必须构build一个客户端/服务器应用程序,其中服务器端只是将数据从一个客户端传递到另一个客户端的应用程序。 客户端将用C#编写,如果可能的话,我想在NodeJS中编写服务器。 我会试着解释这个背后的想法。 如果您将此应用程序看作1vs1游戏,最好解释一下。 所以多个客户端可以连接到一个Async服务器。 一个客户端将与另一个客户端匹配,如在Player1 / Player2上下文中。 玩家1可以做一个“移动”。 例如, POCO将被转换为JSON格式。 然后发送给服务器,服务器应该知道应该向哪个对手(Player2)发送数据。 然后作为回报,玩家2可以移动,然后新的数据将通过服务器发送回玩家1。 所以服务器需要列出所有连接的玩家/客户。 所以它可以跟踪玩家的游戏方式,以及他们的分数和分数等。基本上,这是一个无国籍的环境。 我一直在考虑用SocketAsyncEventArgs类在C#中编写服务器。 但是由于NodeJS / Socket.IO已经是一个优化的库,如果我能做到的话,这将节省时间。 我只需要知道是否有可能在NodeJS中做到这一点。 或者我应该坚持一个C#服务器?

iOSselect哪种服务器端语言,以及哪个服务器后端在处理套接字连接时是首选的

我正在一个iOS应用程序,它会使用一些实时消息,因为我看到它,我有2个选项在这里: 套接字连接到服务器,所以它可以在出现消息时作出响应,或不断查询数据库以进行更新。 唯一的要求是,我写它在ObjC而不是Appcelerator或phonegap。 我想知道你认为我应该select哪个后端提供程序,以及我应该使用哪种语言作为后端。 我已经做了相当多的研究,我自己,我已经尝试了运行PHP的自定义服务器解决scheme,我也试过parsing,我真的很喜欢,但价格是可怕的,当扩展。 我也听说很多有关谷歌App Engine的伟大的事情,虽然我还没有尝试过,我已经尝试过他们的移动kickstarter,这似乎是不好的,考虑到他们的示例项目有多个错误已经坐在他们的GIT几个月没有得到固定。 无论如何,我问的是,我应该写我自己的自定义后端? 或者我应该使用谷歌应用程序引擎/parsing或其他? 我应该使用Node.js,PHP还是Python? 我想节省尽可能多的时间,我有很多与symfony,PHP框架的经验,我有phyton的小经验。 我对node.js没什么经验,不介意学习它。 谢谢你的时间:)

Socket.io – 分享“朋友活动”的devise模式

我正在为某些客户端(手机,单页面应用程序…)编写一些NodeJS应用程序。 应用程序是游戏和相当社交 – 用户可以有朋友和游戏需要实时共享他们之间的事件。 所以我决定使用Socket.io。 如何有效地分享用户朋友的连接套接字之间的事件? 一个用户可以连接多个客户端(所以他有更多的连接套接字)。 使用socket.io“房间”是好主意,每个用户有一个房间,当某个事件发生的时候,这个房间是我朋友的每个房间的空间。 如何有效地处理这个? 为了更好的概念,你可以想象它与Facebook墙(或朋友活动的右侧面板)相同的方式。 你将如何处理?

sockets事件之间的区别

有什么区别: io.sockets.socket(); io.sockets.emit(); io.sockets.on(); sockets.on(); socket.broadcast.emit(); socket.emit(); 任何人都可以解释我有什么区别? 我知道,sockets.on(); 是一个事件监听器,但我不知道区别。 而且…如何将这两条线结合在一起? socket.on('msg_user', function(usr, username, msg) { io.sockets.socket(usernames[usr]).emit('msg_user_handle', username, msg); io.sockets.socket(usernames[username]).emit('msg_user_handle', username, msg); }); 我可以使用io.sockets.emit(); 但我不想在所有连接的套接字中发送,只能在发送者和接收者的消息中发送。 这是我的整个应用程序: app.js var app = require('express')(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(8008); // usernames which are currently connected to the chat //var usernames = {}; var usernames = new […]

如何将属性关联到Redis Store中的socket.io对象?

我正在用Nodejs和Socket.io来处理一个复杂的游戏,我需要将socket.io对象存储在内存中,还要为套接字对象指定属性(比如名称,来自套接字的某个动作的计数器等) 在下面的代码中,我已经展示了我想要实现的一个例子。 我将所有套接字存储在一个数组中,并且还有另一个存储套接字名称属性的数组。 在任何时候,如果我得到名称的请求,我可以从内存中的数组中select名称。 但是现在我有太多的用户,我需要在多个服务器之间对我的应用程序进行负载平衡。 所以我不能将对象和属性存储在内存中。 我需要将它们存储在数据库中。 我打算使用Redis。 这个链接告诉我们如何使用Redis Store套接字 – https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO 但是,如何将我的其他属性(比如名称等)与Redis Store中的套接字对象相关联? 如果有一些新的方法来实现这一点,请让我知道。 var socket_array = new Array(); var socket_name_array = new Array(); var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket_array.push(socket); var i = socket_array.indexOf(socket); var name = generate_random_name(); socket_name_array[i]= name; socket.on('get_name', function (data) { var i = socket_array.indexOf(socket); var name= socket_name_array[i] […]

socket.io每秒发射一次

真的很快问题。 我正在创build一个同步stream媒体应用程序,所以我想通过socket.io发送每秒播放的当前时间码并将其广播到其他客户端。 这是明智的吗? 每秒拨打同一个电话有什么缺点,我可以同时拨打其他电话吗? PS我没有做任何数据库调用或做任何处理服务器端。

如何从c#(.net 3.5)连接node.js服务器

我已经运行了codeplex(SocketIO4Net)上的代码,但是它在.Net 4.0中; 我试图将其转换为3.5:显然面临发行,无法做到这一点。 请告诉我一些方法,以便我可以从.net 3.5连接。 我正在使用winforms而不是专家在套接字。 我将非常感谢您的协助。 谢谢

AngularJs ng-include和socket.io

我是新来的,我不是英文的,所以如果我犯了一些错误,请原谅我。 我的问题是以下一个:我尝试使用angularjs和socket.io(与服务器端nodejs) 所以我有客户端: <html ng-app="my_app"> <head> … </head> <body> … <div id='main_conteneur' ng-controller="CtrlTemplate"> <div ng-include="template.url"></div> </div> </body> </html> 在lib js上: var my_app = angular.module('Quizz', []); my_app.controller('CtrlTemplate', ['$scope', function ($scope) { $scope.template = { name: 'template1.html' , url: 'template/template1.html' }; socket.on('charger_template', function (data) { $scope.template = {name : 'template2.html' , url : 'template/template2.html'}; }); }]); 并在服务器端的sockets,这样做: […]

由node.js服务中的socket.io事件使用的套接字

我恐怕这很难解释,说实话,我真的不能期望任何人经历这一切,但我不知道如何解释它。 我似乎有问题链接到一个node.js socket.io服务的用户名到套接字。 我采取了一个相当标准的聊天样本,我发现并修改了我的需求和拥有 一直试图从一个JavaScript客户端testing其性能。 客户端应用程序有一个用户界面,允许它指定要build立多less个连接,然后点击一个 button打开所有的连接。 当connect事件在客户端触发时,我发送一个用户名(“用户”+连接号),并尝试在服务器上处理这个事件。 在客户端中,当我连接时使用“强制新连接”选项,以便使用新的连接而不是重新使用以前的连接。 我这样做是允许的 性能待测。 我遇到的问题是在服务器上使用的事件似乎有错误的套接字对象(最后一个连接的客户端)。 我可以看到为什么会发生这种情况 asynchronous的原因,但我无法解决它。 这是我的小型服务器应用程序: var httpd = require('http').createServer(); var io = require('socket.io').listen(httpd); io.sockets.on('connection', function (socket) { noOfConnections = noOfConnections + 1; console.log('SocketID ' + socket.id + ' connected. Connections = ' + noOfConnections); socket.on('login', function(UserName) { socket.set('UserName', UserName, function(err) { if (err) { throw […]