ジェネレーター Angular-Fullstack を使用してプロジェクトを開始しました。外部ノード クライアント (他のマシンで実行中) が Angular-FullStack プロジェクトのソケット サーバーに接続できるようにしたいと考えています。
シンプルなノード サーバーとクライアントでテストしたところ、正常に動作しました。コードは次のとおりです。
ノード サーバー:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 9000;
server.listen(port, function(){
console.log('Express server listening on %d port', port);
});
// __dirname is the directory where this file is placed
app.get('/', function (req, res) {
res.sendFile(__dirname + '/browserSocketAppClient.html');
});
io.on('connection', function (socket) {
console.log( 'THE SOCKET: ' + socket.toString());
socket.emit('NODE SOCKET SERVER', { SERVER: 'NODE SOCKET SERVER' });
socket.on('NODE SOCKET CLIENT', function (data) {
console.log(data);
});
});
ノード クライアント:
var io = require('socket.io-client');
var socket = io.connect('http://192.168.0.101:9000');
socket.on('connect', function() {
console.log( 'NODE SOCKET CLIENT has connected with the server');
});
socket.on('NODE SOCKET SERVER', function (data) {
console.log(data);
socket.emit('NODE SOCKET CLIENT', { CLIENT: 'NODE SOCKET CLIENT' });
});
サーバーコンソール:
D:\003_IOT\CODE_EXAMPLES\TestSocketIO>node nodeSocketServer
Express server listening on 9000 port
{ CLIENT: 'NODE SOCKET CLIENT' }
クライアントコンソール
D:\003_IOT\CODE_EXAMPLES\TestSocketIO>node nodeSocketClient
NODE SOCKET CLIENT has connected with the server
{ SERVER: 'NODE SOCKET SERVER' }
しかし、Angular-Fullstack プロジェクトで同じ NODE CLIENT: を使用したい場合、機能しません。
このコードを myproject/server/config/socketio.js に追加しました
socketio.js
function onConnect(socket) {
socket.emit('NODE SOCKET SERVER', { SERVER: 'You are connected with NODE SOCKET SERVER' });
socket.on('NODE SOCKET CLIENT', function (data) {
console.log(data);
});
............................
}
そして、サーバーのコンソールにこの再帰メッセージが表示されます。
Express server listening on NaN : 9000 in development mode
finished populating users
GET /socket.io/?EIO=3&transport=polling&t=1438187488692-7 200 27ms
[undefined:undefined] SOCKET CONNECTED
GET /socket.io/?EIO=3&transport=polling&t=1438187489437-306 200 9ms
GET /socket.io/?EIO=3&transport=polling&t=1438187493792-8 200 8ms
GET /socket.io/?EIO=3&transport=polling&t=1438187495438-307 200 5ms
GET /socket.io/?EIO=3&transport=polling&t=1438187498815-9 200 4ms
GET /socket.io/?EIO=3&transport=polling&t=1438187501438-308 200 5ms
GET /socket.io/?EIO=3&transport=polling&t=1438187503827-10 200 7ms
しかし、それは実際には決してつながりません。Angular-Fullstack プロジェクトのサーバー側の構成にあるはずですが、わかりません。
任意のアイデアありがとう