最近我一直在尝试将nodejs与我现有的项目集成以确保实时更新提要。因此,我使用了以下YII插件并遵循指令:yii-node-socket不适用于我
的主机和端口是:bigcat,3001分别和如所提到的我在console.php和main.php配置它们。我启动的节点服务器和日志表示,它听:
Listening bigcat:3001
Set origin: bigcat:*
在我的客户端,我有以下代码(我创建它作为一个外部JavaScript):
// create object and connect to web socket server
var socket = new YiiNodeSocket();
socket.on('event.example', function() {
console.log('*****Trigger test.event, is a global event, for all clients*****');
});
socket.onConnect(function() {
socket.room('example').join(function (isConnected, numberOfRoomClients) {
if (isConnected) {
// catch test.event only for this rooom
console.log('***Joined into room example: members count [' + numberOfRoomClients + ']*****');
this.on('example.room.event', function (data) {
console.log('****WORKING****');
});
}
});
});
我的控制台该客户端成功是connected.An在HomeController的测试方法的记录,我有以下代码:
$event = Yii::app()->nodeSocket->getFrameFactory()->createEventFrame();
$event->setRoom('example');
$event->setEventName('example.room.event');
$event['type_string'] = 'hello world';
$event['type_array'] = array(1, 2, 3);
$event['type_object'] = array('one' => 1, 'two' => 2);
$event['type_bool'] = true;
$event['type_integer'] = 11;
$event->send();
当我调用HomeController的测试方法在另一个浏览器,我的客户应该能够听到这个事件,控制台应该打印出“IT's WORKING”。但是,这并没有发生。我的日志显示以下错误:
warn: handshake error INVALID SERVER: server host 127.0.0.1 not allowed for /server
debug: websocket writing 7::/server:undefined
服务器端代码似乎根本不工作。我能否就如何完成这件事得到一些建议。我觉得我很接近,但很远。
的server.config.js设置为:
module.exports = {
host : 'bigcat',
port : parseInt('3001'),
origin : 'bigcat:*',
allowedServers : ["127.0.1.1"],
dbOptions : {"driver":"dummy","config":[]},
checkClientOrigin : 1,
sessionVarName : 'PHPSESSID'
};
嗨。请给我一秒钟,我会提供更多的信息。感谢您前来帮忙 – madi 2014-10-08 07:36:41
我已更新node-socket/lib/js/server/server.config.js设置,如上所示。请看看 Upvoted:给一些其他的发现/ – madi 2014-10-08 07:42:15
真棒,它的作品! – madi 2014-10-08 08:42:27