dyknow / signalr-objc Goto Github PK
View Code? Open in Web Editor NEWObjective-C Client for the SignalR Project works with iOS and Mac
License: MIT License
Objective-C Client for the SignalR Project works with iOS and Mac
License: MIT License
SignalR.Client .NET supports ICredentials
Still need to check if this is true of framework build
ForeverFrame transport is available in JS Client https://github.com/SignalR/SignalR/blob/ca606a7c74bbb5f52eab92ef2606fa2983c80e1e/SignalR.Samples/Scripts/jquery.signalR.js
The install instructions will not work for mac os x
The transports support an initialized and error callback but these are unused
When built as a framework this causes build errors, see if we cant resolve this
Started receiving Protocol error: Missing connection id error after updating to the latest version of signalR.Samples Project and making the switch to connectionId instead of clientId. This seems to be related to
SignalR/SignalR#41 and is probably an error with the server not the client, opening this for now until some resolution is found
If a callback is configured with, say, 2 parameters, if a server sends an invocation with three parameters, NSInvocation throws an exception.
When the server has no activity and the client is using server sent events the reconnect process creates new connections and eventually will max out iis's 10 concurrent connection limit on Win7 preventing any further communication without an iisreset
Cleanup the sample projects so they are more usable
Should be able to cancel a long polling request like you can on the .NET Client
This will require some research see issue 163, I am not sure this applies to Objective C, if this an issue then we will want to fix it by doing something similar to this:
ServerSentEvent Transport is available in JS Client
https://github.com/SignalR/SignalR/blob/ca606a7c74bbb5f52eab92ef2606fa2983c80e1e/SignalR.Samples/Scripts/jquery.signalR.js
something to look into, this has not caused any issues yet.
for ease of use, we should build this into an external framework
To allow the debug logging to be turned on or off switch to cusom debug flags that can managed individually
To make life really simple for developers who might already be using AFNetworking in their larger project it would be nice to handle json as they would expect it handled so ideally SignalR-ObjC would support all automatic detection of JSON libraries like AFNetworking does (since it is our only required dependency).
Take a look at AFNetworking AFJSONUtilities for specific support.
__weak is not available in iOS < 5.0
The only thing that appears to be preventing SignalR from working on iOS 4.3 is
__weak NSMutableDictionary *hubs_ = _hubs;
We should be able to change this line to
__unsafe_unretained NSMutableDictionary *hubs_ = _hubs;
Make sure that we are giving proper credit for the vendor project now that there are several
This was previously supported but a bug in the SignalR Server project causes
Protocol error: Missing connection id which is an issue available on SignalR/SignalR#41
For now SIgnalR-ObjC will be supporting the release build of SignalR 0.3.5
LongPolling isFaulted boolean is not determined correctly
With all the changes made to update the client the framework project will likely not build
With iOS 5 NSJSONSerialization is available publicly in both iOS and Mac OS X so there is no real need for SBJSON unless we wanted to support version prior to iOS 5
Below are the changes made to the .net client that should be added to the objective c client
SignalR.Client Next Release
ConnectionID
SignalR/SignalR@3001fa4
See SignalR Client Sample
SignalR/SignalR@999e05a
Additional Transports
SignalR/SignalR@ac3aea3
SignalR/SignalR@cd6b89f#diff-2
Throw if Connection is not initialized
SignalR/SignalR@23efe2b
Store Connection State
SignalR/SignalR@4093a4d
Helper for getting value from dictionary
SignalR/SignalR@f2cc4c9
Only Decrement if queue if > 0
SignalR/SignalR@cea5c80
Remove item from bag
SignalR/SignalR@aeb7955
Add Protocol version
SignalR/SignalR@2038ee2
Fix SL and WP7 Client for missing API
SignalR/SignalR@8eeaecb
Connection and ServerSentEvents
SignalR/SignalR@3f8b46a
Connections Auto HttpBasedTransport LongPolling ServerSentEventsTransport
SignalR/SignalR@ab47547
LongPolling
SignalR/SignalR@df5ec1a
Server Sent Events
SignalR/SignalR@26fc6da
Long Polling
SignalR/SignalR@076f4ca
Connection
SignalR/SignalR@f1fd082
Lets do something like this:
NSMutableDictionary *errorDetails = [NSMutableDictionary dictionary];
[errorDetails setObject:[NSString stringWithFormat:@"%@",errorDescription] forKey: NSLocalizedDescriptionKey];
[errorDetails setObject:[NSString stringWithFormat:@"%@",failureReason] forKey: NSLocalizedFailureReasonErrorKey]
[errorDetails setObject:[NSString stringWithFormat:@"%@",someRecoverySuggestionIfAvailable] forKey: NSLocalizedRecoverySuggestionErrorKey];
NSError *_error = [NSError errorWithDomain:@"com.SignalR.[ClassName].[ErrorName]" code:[SomeCode or 0] userInfo:errorDetails];
Websockets Transport is available in JS Client https://github.com/SignalR/SignalR/blob/ca606a7c74bbb5f52eab92ef2606fa2983c80e1e/SignalR.Samples/Scripts/jquery.signalR.js.
Plan to use CocoaAsyncSocket (GCDAsyncSocket) for Socket Communication on iOS https://github.com/robbiehanson/CocoaAsyncSocket
The user of SRConnection should be able to send cookies and other headers to the server.
Negotiation should support a protocol version which is checked client side after successful negotiation.
Throwing exceptions in hubs will cause the app to close even if the error message can be caught
In the current implementation SRHttpBasedTransport always returns NO
Will start listing here what get changed for the .5 release so we can keep the libraries consistent
Websockets Transport is available in JS Client https://github.com/SignalR/SignalR/blob/ca606a7c74bbb5f52eab92ef2606fa2983c80e1e/SignalR.Samples/Scripts/jquery.signalR.js.
Plan to use SocketRocket for Socket Communication on iOS https://github.com/square/SocketRocket
add some customizations to allow connections to use blocks instead of the delegates
We need to correctly validate and parse the protocol version after negoitiation
Unit Tests
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.