我试图在symfony2应用程序上与Elephant.io(Elephantio捆绑包)和Socket.io进行实时聊天。
socket.io服务器和我的symfony应用程序之间的连接运行良好,但当我试图将数据传递到socket.io时,它会返回[object object]。
我这样做:
#Config.yml
nc_elephant_io:
clients:
default:
connection: http://localhost:3006
version: 1.x
socketio_key:
connection: http://localhost:3000
version: 1.x
我的控制器
public function indexAction()
{
$client = $this->get('elephantio_client.socketio_key');
$elephantIOClient = $client->getElephantIO();
$elephantIOClient->initialize();
$elephantIOClient->emit('chat message', ['msg' => 'bar']);
$elephantIOClient->close();
return $this->render('default/index.html.twig');
}
我的服务器.js
var io = require('socket.io').listen(3000);
io.on('connection', function(socket){
console.log('a user connected');
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
当我刷新索引页面时,它会返回
用户连接的
但是我的";msg"此处声明的数据
$elephantIOClient->emit('hat message',['msg'=>'bar']);
未呈现或未传递到socket.io,并返回
用户连接的
消息:[对象对象]
用户断开
我已经读过这个问题的主题,但从来没有读过php/elephant.io实现。
是有人已经遇到了这个问题,还是你也有一些想法来解决这个问题?
谢谢。
很抱歉回复太晚,但由于我在项目中处理socket.io和elephant.io,所以我来到了这里。无论如何,您的连接是完美的,并且由于您在客户端console.log('message: ' + msg);
中记录了一个对象,因此您得到了[object Object]
。尝试使用.
运算符来获取实际数据。
socket.on('chat message', function(msg){
console.log('message: ' + msg.msg);
//^^^^-- here since you are sending your object as "msg" from server
}