Tag: socket.io

Socket.io,保持不同的页面接收每个消息?

对不起,这个令人困惑的标题,但我不知道如何解释我的问题,有人请相应地编辑我。 所以我有一个网站页面,从节点服务器接收消息。 socket.on('item finished', function(data){ $('#item'+data).html('finished'); }); 所以基本上我告诉客户,一旦一个项目完成,它必须告诉用户。 我将所有的js代码放在script.js中,然后在页面中调用它,所以我的所有页面都有脚本。 无论何时我在其他页面上,服务器向客户端发出“项目已完成”消息都会在控制台上popup。 Uncaught TypeError: Cannot read property 'html' of null 这个错误并不是那样的,但是你明白了,客户正在试图做它应该做的事情,但是我不希望发生这种事情。 那么有没有办法避免在不同的页面中使用相同的脚本文件的控制台错误? 我错过了什么? 谢谢!

在AngularJS中使用范围和控制器时发生冲突

我有一个使用AngularJS和NodeJS后端的简单网站。 它有多个页面,如主页,login/注册页面等 我想实现一个“聊天”页面,您可以使用socket.io将消息发送到其他客户端。 我已经使用一个本地控制器(通过本地,我的意思是活跃在一个单一的页面 – 聊天页面)的那部分工作。 问题是,我希望聊天系统是全球性的(即,客户端可以在主页上接收消息,但是在返回聊天页面时仍然只能显示)。 在设置聊天控制器全局(在所有页面上激活)时,我遇到问题。 以下是我包括它的方式: <body ng-controller="AppCtrl"> <!– include main controller –> <div ng-include="'header.tpl.html'"></div> <div ng-controller="ChatCtrl" class="page"> <!– include global Chat controller –> <div ng-view class="container"></div> </div> <div ng-include="'footer.tpl.html'"></div> <!– …etc. –> </body> 这工作相当好,但似乎我不能从我的聊天页面访问值,但。 从聊天控制器声明的函数仍然可以被调用,但是“$ scope.message”值(包含正在键入的消息)始终是空的。 这里是我的聊天控制器(这实际上叫做TravelCtrl) angular.module('base').controller('TravelCtrl', //['$scope', 'security', function($rootScope, $scope, security, NgMap, $geolocation, socket){ $scope.messages = []; // Socket […]

对象或对象数组

我想在node.js中存储连接的socket'id(socket.io)和其他一些关于这些的信息。 原因是,我必须列出客户和他们的信息,否则我必须find一个由它的ID。 我能够只使用客户端连接时创build的socket对象。 我以为,如果一个客户端连接,我会'把'它的ID和附加信息的clientsvariables。 var clients = /* this is the question */; io.on('connection', function(socket) { // I can't use `io` just the `socket` }) 我对这个问题有两个想法,但是我不知道哪个是更好的结构来做这个,或者如果有很多客户端连接,哪个会更快,使用更less的内存? 目的: 唯一的ID是关键,数据存储在它的值。 { '01234': { // … }, '56789': { // … } } 对象数组: 对象存储在一个数组中,它们的唯一ID和数据也存储在它们中。 [ { id: '01234' // … }, { id: '56789' // … } […]

Socket.io + Azurenetworking套接字问题

我正在与NodeJS和socket.IO一起玩多人国际象棋游戏。 我有问题托pipe它在Azure寿..我尝试了很多不同的方法,提到几个: 通过添加下面的代码强制应用程序只使用WebSockets: io.configure(function() { io.set('transports', ['websocket']); }); 在web.config文件中添加了<webSocket enabled="false"/> 。 注意 :这将禁用IIS WebSockets模块,该模块包含自己的WebSocket实现,并与Node.js特定的WebSocket模块(如Socket.IO)冲突。 如果这行不存在,或设置为true,这可能是WebSocket传输不适用于您的应用程序的原因。 匹配原始协议以确保没有SSL问题。 io.configure(function() { io.set('match origin protocol', true); }); 我现在从头开始,因为我认为我的服务器端部分已损坏,而是尝试使用Socket.io聊天示例 。 我遵循了这些步骤。 在Azure上创build了一个新的Web应用程序。 通过FileZilla FTP发布我的文件。 在Azure上启用我的应用程序的Web套接字(默认情况下禁用)。 仍然是同一个错误! 见下图。 任何人? 我不确定这是客户端还是服务器端问题。 它似乎是试图XHR轮询,而不是使用networking套接字.. 提前致谢。

SocketIO Android没有发出连接事件

我正在使用Android本机socketio库和NodeJS 。 // on my Android activity private Socket mSocket; { try { mSocket = IO.socket("http://IP_OF_MY_SERVER"); } catch (URISyntaxException e) {} } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSocket.connect(); } 。 // on my nodejs app var restify = require('restify'); var server = restify.createServer({ name: 'myapp', version: '1.0.0' }); var io = require('socket.io')(server.server); server.use(restify.acceptParser(server.acceptable)); […]

socket.io – socket.send不传递消息

我正在尝试在前端和后端之间传递文本。 我的node.js代码如下所示: var express = require('express'); var app = express(); var io = require('socket.io').listen(8081); app.use(express.static('public')); var server = app.listen(3000, function () { var port = server.address().port; console.log('Example app listening at', port); io.sockets.on('message', function (message) { console.log(message); }); }); 标记: <html> <body> <script type="text/javascript" src="https://cdn.socket.io/socket.io-1.3.7.js"></script> <script type="text/javascript"> var socket = io.connect('http://localhost:8081'); socket.on('connection', function (socket) { socket.send('hi'); […]

在parsingNode.js中的JSON时遇到问题

我想parsing看起来像这样的JSON: { "values" : [{ "alpha":8 },{ "beta":4 },{ "gamma":-3 } ]} 我parsing它: console.log(msg.values.alpha) ,并得到: Missing error handler on `socket`. TypeError: Cannot read property 'alpha' of undefined 这是我在其他网站上看到的。 这样做与console.log(msg.values)返回undefined ,只是运行console.log(味精)返回正确的JSON 。 我曾经见过这个问题的其他人,但是没有人说这是做的。 谢谢!

TypeError:require(…)不是节点js中的函数

我试图学习节点js和尝试几个示例代码,当我碰到socket.io网站,我尝试在他们的网站示例代码。 我不认为他们的网站上写的代码将是错误的。 我在运行代码时遇到的错误,我不知道如何解决,我不知道我做错了什么。 我对node js很新,请帮帮我。 这是我采取代码的网站的链接。 这是我试图运行的代码。 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendfile('index.html'); }); io.on('connection', function(socket){ console.log('a user connected'); }); http.listen(3000, function(){ console.log('listening on *:3000'); }); 而我运行代码时得到的错误是 var io = require('socket.io')(http); ^ TypeError: require(…) is not a function at Object.<anonymous> (/home/ubuntu/workspace/index.js:3:30) at Module._compile (module.js:434:26) at […]

如何创build将保持WS和WSS连接的soket.io服务器?

我有一个像这样的代码的socket.io服务器: var sticky = require('sticky-session'); sticky(function() { var app = require('http').createServer(handler); function handler (req, res) { res.writeHead(200, { "Access-Control-Allow-Origin": "*" }); return res.end('pong'); } var io = require('socket.io')(app, {'origins' : '*' + config.application.hostname + '*:*'}); const newmessagesConnections = io.of('/new-messages'); newmessagesConnections.on('connection', function (client) { ….. }); const callingsConnections = io.of('/callings') callingsConnections.on('connection', function (client) { ….. }); […]

socket.io监听/监听事件

我很惊讶的看着socket.io文档,当它绑定到一个端口没有被socket.io触发的事件…我正在寻找一个“听”/“聆听”事件… http://socket.io/docs/server-api/ 我有一个用http.Server实例初始化的简单模块: var io = require('socket.io'); var socketServer = null; function getSocketServer(httpServer) { if (socketServer === null) { if (httpServer == null) { throw new Error('need to init socketServer with http.Server instance'); } socketServer = io.listen(httpServer); } return socketServer; } module.exports = { getSocketServer:getSocketServer }; 当我需要这个模块时,我想倾听一个“倾听”事件。 就像是: var socket = require('./socket-cnx').getSocketServer(); socket.on('listening',function(err){ }); 我想主要的原因是因为on […]