ソケットから信号を受信した後、いくつかの ajax イベントを実行するために node.js + express + socket.io を使用しています。これが私のコーディングです:
サーバ:
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(4000);
io.sockets.on('connection', function(socket){
socket.on('send message', function(data){
io.sockets.emit('new message', data);
});
});
クライアント:
<script type="text/javascript">
var socket = io.connect();
jQuery(function($){
socket.on('new message', function(data){
if(data=='refreshNow'){
$.ajax({
type:"get",
dataType:"json",
url:"index.php?r=Ajax/TestBlankData",
success:function(data){
console.log('success');
},
error: function() {
console.log('error');
},
});
}
});
});
$( "#testing" ).click(function() {
socket.emit('send message', 'refreshNow');
});
</script>
ajaxページ:
public function actionTestBlankData()
{
echo CJSON::encode(array());
}
コンソール:
18 success
4 error
x GET http://localhost:5000/wwwroot/XHS/index.php?r=Ajax/TestBlankJson jquery.js:8434
send jquery.js:8434
jQuery.extend.ajax jquery.js:7986
(anonymous function) index.php:95
EventEmitter.emit socket.io.js:634
SocketNamespace.onPacket socket.io.js:2249
Socket.onPacket socket.io.js:1931
Transport.onPacket socket.io.js:1333
Transport.onData socket.io.js:1304
websocket.onmessage socket.io.js:2379