使用socket.io处理socket.emit()错误
我在用
$('btn').click(function() { socket.emit('load more', function (objs) { // do something }); });
在客户端从服务器获取对象。
但是有时候连接会丢失,没有任何反应。 我怎样才能使error handling,使我可以告诉用户,服务器不回答,而不是让事情发生,因为它是现在?
编辑
所以我想要的是类似的东西
$('btn').click(function() { var emit = socket.emit('load more', function (objs) { // do something }); if (!emit) { console.log("It didn't work. Maybe you lost connection or the server is not running."); } });
我知道我不能这样做,但是使用承诺还是可以的?
emit
第二个参数是我们需要传递'load more'
事件的数据。
如果你只是想让服务器知道你需要的数据,而不传递任何额外的信息,只是做socket.emit('load more')
。 在服务器中,监听事件'load more'
,并将数据发送到具有特定event-name
客户端。 在客户端,监听事件'event-name'
并在callback中接收数据,
socket.on('event-name', function(data_from_server){ //do something });
如果你想处理的情况下,服务器不发送任何数据,然后等待一段时间发送事件'load mode'
并处理它。