Tag: socket.io

Swift iOS应用程序不使用Socket.IO连接到服务器

我即将写一个非常简单的iOS应用程序。 我希望应用程序通过使用Socket.IO连接到服务器。 我已经为我的项目安装了Cocoapods的Socket.IO,一切进展顺利。 问题是我运行我的服务器,然后应用程序模拟器后,应用程序没有连接到服务器。 我没有得到任何types的错误消息或类似的东西,但是服务器应该在连接套接字时在控制台/terminal上打印消息。 这是套接字pipe理器类 import UIKit import SocketIO class SocketManager: NSObject { static let sharedInstance = SocketManager() override init() { super.init() } var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "localhost:3000")!) func establishConnection() { socket.connect() } func closeConnection() { socket.disconnect() } } 这是AppDelegeate类: import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func […]

禁用默认名称空间或断开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来解决它?

将桌面通知添加到nodejs + socket .io + mysql应用程序

希望你能帮助我这个…即时通讯工作与节点socket.io和数据库在MySQL推动新闻10或20人,我们有一个简单的ASP页面,一个文本框和一个button,只是插入消息数据库从服务器正在查询…..这是事情! 我需要添加桌面通知连接到与相同的信息只是推动的页面的客户端…. 这是我如何从client.html获得新闻 <script src="socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> // creamos el websocket con socket.io var socket = io.connect('http://mysite:8000'); // monstramos todos los datos incluidos en #container div socket.on('notification', function (data) { var registrosList = ""; $.each(data.registros,function(index,user){ registrosList += "<div class='media'><div class='media-left'><a><img class='media-object' style='margin-left:4px'; alt='imagen' width='50px' height='50px' src='" + user.link + "'></a></div><div class='media-body'><h5 class='media-heading'>somevariablename <small><i>"+ user.tiempo […]

套接字在服务器端代码节点内发射

我使用MEAN堆栈,与angularjs前端,节点后端。 有可能使一个套接字在一些函数内发出呼叫吗? 我只是intrested向客户端发送数据。 或者如何推动服务器双方工作,也可以用套接字来完成? 客户端请求如下服务器端 var bankfactory = require(path.resolve('./modules/articles/server/factory/user_factory.js')); app.post('/api/bank', function (req, res) { bankfactory.bank_inn(req.user._id,amount).then( function (bankresult) { res.json(bankresult); }); }); bankfactory: exports.bank_inn = bank_inn; function bank_inn(playerid,amount) { if (playerid == 1) { } else { // possible to make a emit call to the client here? //emit("newevent,datahere) } } 是否有可能在那里发射sockets?

无法与FireFox中的socket.io(xhr轮询错误)build立连接

我使用的是socket.io 1.4.8和firefox 48.我有一个示例代码,可以在Chrome中正常工作: // Server var express = require('express'); var app = express(); var fs = require('fs'); var option = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem') }; var https = require('https').createServer(options, app).listen(process.env.PORT || 3000); var io = require('socket.io')(https); io.on('connection', function(socket) { socket.on('login', function(username) { console.log('[login]', username); }; } // Client var socket = io('https://127.0.0.1:3000'); var username […]

如何在Node.js Socket.io中打开Amazone EC2中的端口?

我有在端口上工作的Node.js应用程序: server.listen(8181); 所以,当它工作,然后文件socket.io应该是可用的path: http://152.30.141.23:8181/socket.io/socket.io.js 但是我无法访问这个文件。 我试图打开Amazone控制台中的安全组端口,并设置: All ICMP | Anywhere 0.0.0.0 入站规则部分中的All ICMP | Anywhere 0.0.0.0 但它仍然不起作用。 代码很简单: var app = require('express')(), redisServer = require('redis'), path = require('path'), time = require('time'), server = require('http').Server(app), _ = require('underscore'), io = require('socket.io')(server); server.listen(8181);

Socket.io从客户端发送二进制数据到服务器

使用socket.io 1.0,现在可以将二进制数据从服务器发送到客户端。 例如,你可以这样做: fs.readFile(__dirname + '/assets/pigeon-final.png', function(err, buf){ socket.emit('image', { image: true, buffer: buf.toString('base64') }); if(!err){ console.log('image test success'); } }); 然而,是否有可能做相反的事情呢? 例如,从客户端发送二进制数据到服务器端呢?

expressjs socket.io端口3000已经在使用中

我需要指定不同的端口快递(3000)和socket.io? 错误:端口3000已被使用 我的代码: index.js var express = require('express') ,router = express.Router() , app = express() , http = require('http') , server = http.Server(app) , io = require('socket.io').listen(server) server.listen(3000); router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); io.on('connection',function(socket){ console.log("A user is connected"); socket.on('point1', function (value) { socket.broadcast.emit('point1',value); }); socket.on('less1', function (value) { socket.broadcast.emit('less1',value); […]

当使用redis获取警告时使用socket.io:可能的EventEmitter内存泄漏检测。添加消息侦听器

完整的错误使用socket.io和redis时,Msg.I会得到这个错误。所有的都是最新的包。我运行v4.5.0节点。 (节点)警告:检测到可能的EventEmitter内存泄漏。 添加了11个消息监听器。 使用emitter.setMaxListeners()来增加RedisClient.addListener的限制 我得到这个错误消息,如果我重新加载浏览器几次。我发现一个很古老的问题 ,并提到它被修补。 仅供参考,我在nginx代理后面运行了三个节点实例。 app.js var express = require('express'); var session = require('express-session'); var redis = require('redis'); var redisClient = redis.createClient(); var sub = redis.createClient(); var pub = redis.createClient(); var RedisStore = require('connect-redis')(session); app = express(); var io = require('socket.io')(); var sessionMiddleware = session({ store: new RedisStore({ client:redisClient }), secret: 'keyboard cat', […]

如何使用套接字发送大文件?

我有一个zip文件(15 MB),想要发送到android套接字连接,我可以通过以下代码发出: fs.readFile('path',function(err,fileData){ io.to(socketId).emit('sendFile',{'file':fileData.toString('base64')}); }); 使用上面的代码,小文件发送没有任何延迟,如果有任何大尺寸的文件发送延迟。 如何以更好的方式实现这一点。