簡単なアプリを作成し、Chrome でテストしました。すべて正常に動作します!現在、qupzilla でテストしていますが、.emit 関数をトリガーしても何も起こりません。クロムから私は物を書きました、オブジェクトは更新されてサーバーに送信され、サーバーはブロードキャストを行います。すべて問題ありません (qupzilla も更新を受け取ります)。しかし、qupzilla で何かを書いた場合、この更新はサーバーに送信されません (ノードにログがありません)。
ここにいくつかのコードがあります。
サーバ側:
var io = require('socket.io').listen(8080);
io.set("log level", 1);
var dataStored = [];
io.sockets.on('connection', function (socket) {
socket.emit('event', dataStored);
socket.on('update', function (data) {
console.log(data);
dataStored = data;
socket.broadcast.emit("event", data);
});
});
そしてクライアント側:
$scope.things = [];
$scope.pushingObj = "";
// socket
var socket = io.connect("http://localhost:8080", {
'connect timeout': 500,
reconnect: true,
'reconnection delay': 500,
'reopen delay': 500,
'max reconnection attempts': 10000
});
socket.on("event", function(data) {
$scope.things = data;
$scope.$apply();
});
//
$scope.pushObj = function() {
//console.log($scope.pushingObj);
$scope.things.push($scope.pushingObj);
socket.emit("update", $scope.things);
$scope.pushingObj = "";
}