Articles of 套接字

等待来自Async,Protractor,nodejs的响应

我正在尝试创build一个帮助器函数,这个函数是一个asynchronous调用,它是我的数据设置的一部分,用于protactortesting。 有没有一种方法可以等待函数的响应,然后继续进行testing,这是我正在做的。 所以基本上testing应该等到asynchronous调用lo loaddata()完成。 我已阅读有关承诺的使用,但无法成功实施。 "use strict"; describe('sample passing test spec', function() { describe('sample passing test suite', function() { loaddata(); it('sample passing test', function () { datall(); expect("1").toEqual("2"); }); }); }); loaddata() is basically making a socket connection function loaddata(){ var net = require('net'); var client = new net.Socket(); client.connect(20000, '127.0.0.1', function() { console.log('Connected'); client.write('Hello, […]

在NodeJS中的Socket.io

我在一个NodeJS应用程序中使用socket.io 。 socket.io页面位于localhost:8081/socket.io/ 。 不过,我想在localhost:8081/hola/socket.io/ 。 那可能吗? var express = require("express"); var app = express(); var server = require("http").Server(app); var io = require("socket.io")(server); //some code here… server.listen(8081, function() { console.log("Server running at http://localhost:8081/"); });

TCP服务器只能在localhostscheme中使用

我可以在本地主机上的TCP客户端和TCP服务器之间build立一个TCP连接,但是我不能重复同一个networking范围内的不同计算机连接的示例(发件人Windows Server 2012 x64 R2和接收器Windows 10 x64 Pro) 。 TCP服务器是C#应用程序,TCP客户端在node.js中。 我已禁用防病毒和Windows防火墙。 //SERVER C# void Receive() { //tcp_Listener = new TcpListener(IPAddress.Parse("192.168.1.62"), 212); IPAddress localAddr = IPAddress.Parse("0.0.0.0"); tcp_Listener = new TcpListener(localAddr,212); TcpClient clientSocket = default(TcpClient); tcp_Listener.Start(); print("Server Start"); while (mRunning) { // check if new connections are pending, if not, be nice and sleep 100ms if (!tcp_Listener.Pending()){ […]

在远程服务器上与Socket.iobuild立连接

我创build了一个简单的应用程序Laravel Homestead来testing一些基本的东西:广播事件并在socket.io上监听它们。 一切运作良好。 但是,我想将应用程序上传到远程服务器到名为learn-redis的目录,并面临挑战。 我的socket.js文件如下所示: var server = require('http').Server(); var io = require('socket.io')(server); var Redis = require('ioredis'); var redis = new Redis(); redis.subscribe('test-channel'); redis.on('message', function(channel, message){ message = JSON.parse(message); io.emit(channel + ':' message.event, message.data); }); server.listen(8000); 在Laravel Homestead,我知道我可以听到8000端口,因为它在运行vagrant up时候在控制台上vagrant up 。 那我的远程服务器呢? 我使用什么端口? 在客户端,我有这个代码。 var socket = io(' http://192.168.10.10:8000 '); new Vue({ el: '#demo', data: […]

如何从客户端socket.emit serverside socket.io捕获命名空间的来源

如果你有一个客户端在一个特定的命名空间/房间执行一个socket.emit,你在服务器上做一个“套接字”如何能捕获命名空间的起源作为一个string? IE: 客户: socket.emit('foo', $('#bar').val()); return false; 服务器: socket on('foo', function (foo) { var usersubmitteddata = foo var namespaceorigin = ??? });

离子套接字设置不起作用

我使用MEAN.JS (NODEJS)为我的服务器端和客户端为我的门户网站,我有套接字安装实时更新和它的作品完美,当我在我的ionic framework基于Android应用程序中使用相同的控制器它吐出错误, GET http://localhost:8100/socket.io/?EIO=3&transport=polling&t=LDaenOH 404 (Not Found) 。 我的服务器在http://localhost:3000 我的MEANJS和IONIC套接字服务 angular.module('core').service('Socket', ['Authentication', '$state', '$timeout', function (Authentication, $state, $timeout) { // Connect to Socket.io server this.connect = function () { // Connect only when authenticated if (Authentication.user) { this.socket = io(); } }; this.connect(); // Wrap the Socket.io 'on' method this.on = function (eventName, callback) […]

在android和nosejs之间通过套接字发送文件

我试图build立一个应用程序之间的android客户端和节点js服务器之间传输文件。 我设法从android客户端发送一个图像,但我想用节点js服务器接收它。 我试过这个: socket.on("image", function (image) { console.log(" image réçu : " +image) }); 但这不适合我。 我应该如何解决这个问题。

Socket.io客户端到客户端的逻辑,有很多用户

我试图在我的应用程序中使用socket.io和node.js和Android实现客户端到客户端的消息传递。 我search了一下,发现了很多教程,解释了在通过socket.io套接字发送消息时如何处理针对特定客户端的问题。 用socket.io和node.js发送消息给特定的客户端 解决scheme几乎总是相同的:创build一个hashmap对象,将用户信息(如username , email address (或任何可以识别的唯一标识))与其socketid 。 然后调用io.clients[sessionID].send() 现在我有两个问题: 如果只有一个app实例正在运行,这将工作,但想象如果我的应用程序分为多个实例(对于大型应用程序)。 如果连接到实例X的客户端A想要发送消息给连接到实例Z用户B ,该怎么办? 如果在示例中看到的是,直接将脚本存储在脚本中存在的简单对象中,则某些套接字将不知道其他实例中存在的其他用户。 如果我完全错了(我可能),这是一个很好的做法,将所有用户的socketids存储在一个单一的variables? 如果是的话,50000+的用户环境还是可以的吗? 如果不是,我应该find另一个解决scheme,像在数据库中存储用户的socketids ?

奇怪的cors与套接字问题

我正在使用btford.socket-io,并尝试与节点交谈。 它工作正常,但不是我从localhost:5000更改为example.org如下所示: .factory('socket',function(socketFactory){ //working var myIoSocket = io.connect('http://localhost:5000'); //not working var myIoSocket = io.connect('http://example.org:5000'); mySocket = socketFactory({ ioSocket: myIoSocket }); return mySocket; }) 我在我的控制台中得到了这个错误 XMLHttpRequest cannot load http://example.com:5000/socket.io/?EIO=3&transport=polling&t=LIGH5VO. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:8100' is therefore not allowed access. The credentials mode of […]

MongoError:套接字挂断

我正尝试连接到mongolabs(mlabs)上的mongodb数据库。 当我在本地计算机和服务器上运行代码时,我连接成功。但是当我在我的aws服务器上运行时,我得到这个错误数据库错误{ [MongoError: socket hang up] name: 'MongoError', message: 'socket hang up' } Code trial.js: var express = require('express'); var app = express(); var mongoose = require('mongoose'); var mongojs = require('mongojs'); var db = mongojs('mongodb://user:pass@ds01312192.mlab.com:133492/database', ['mohd'], { ssl : true }); db.on('error', function (err) { console.log('database error', err); }); db.on('connect', function () { console.log('database connected'); […]