我正在为iOS游戏编写服务器.游戏是基于回合的,并且服务器将信息推送到客户端的唯一时间是通知对手的移动.
我很好奇是否有人可以评论使用websockets和长轮询之间的性能和易于实现的差异.另外,如果我使用websockets,我应该只使用它来接收信息并发送其他所有的POST请求,还是应该通过websocket进行所有通信?
另外,如果我有兴趣创建一个Web客户端,那么在websockets和长轮询之间还有什么需要考虑的吗?
我正在将这个NSURLConnection与代表一起使用.
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
Run Code Online (Sandbox Code Playgroud)
问题是网站根本没有回应.没什么,只是在浏览器中旋转空白页面,没有失败.在我的代表中,我处理失败,但当网站没有响应时,代表不会被调用.有关如何超时连接的任何想法?
我正在尝试用图像精灵构建一个加载指示器,我想出了这个功能
function setBgPosition() {
var c = 0;
var numbers = [0, -120, -240, -360, -480, -600, -720];
function run() {
Ext.get('common-spinner').setStyle('background-position', numbers[c++] + 'px 0px');
if (c<numbers.length)
{
setTimeout(run, 200);
}else
{
setBgPosition();
}
}
setTimeout(run, 200);
}
Run Code Online (Sandbox Code Playgroud)
因此输出看起来像这样
我不得不使用setBgPosition(); 在其他内部保持这个循环运行所以现在我的问题是如何我想要[加载完成]后停止此循环?
假设我们有一个与Web服务通信的iOS应用程序.某些请求被委托给另一个Web服务,因此在另一侧的操作正在进行时会立即返回HTTP 200状态代码:
|iOS app| |Main service| |Delegate service|
| request | |
|------------------->|_ delegate |_
| | |----------------->| |
| HTTP 200 | | accepted | |
|<-------------------|_|<-----------------| |
| | | |
| | | |
| status? | | |
|------------------->|_ | |
| | | | |
| pending | | | |
|<-------------------|_| | |
| | | |
| | finished | |
| |<-------------------|_|
| | |
| status? | |
|------------------->|_ |
| …Run Code Online (Sandbox Code Playgroud) ios ×2
long-polling ×2
web-services ×2
css ×1
extjs ×1
iphone ×1
javascript ×1
polling ×1
rest ×1
settimeout ×1
timeout ×1
websocket ×1