Comments (26)
Just to elaborate a bit more. I'm trying to run SignalR on Mono on OSX, and the main problem is the Microsoft.Web.Infrastructure dependency, it crashes due to some registry things that assembly is doing internally.
Looking at the source code of SignalR this might be possible to work out. I'll see if I can get the time to create a patch for it.
from signalr.
I just wan't to voice my support for this idea, but there's not much I can do to help. :)
I'm running mono 2.10 on debian and
a) If using a Hub signalr/hubs 404's
b) PersistentConnections are stuck on connect
Not much more I can report on that matter.
from signalr.
My +1 for adding Mono support for SignalR
from signalr.
We can revisit this now that signalr is decoupled from ASP.NET.
from signalr.
+1 for Mono support
from signalr.
Hey guys, can someone take the lead on this? I'm not a mono expert and it would be great if someone with mono experience can take a look at it. The refactored source should be alot easier to play with.
from signalr.
Sure. I can at least start by compiling it and identifying if there still is an issue. Let me do that later tonight (CET) and give you my findings.
from signalr.
Got through the compile hurdle - the only thing I needed to fix to be able to compile was the Bind() method inside DefaultActionResolver. The Serializer only has the generic version of the ConvertToType() method. From the context it looks like you're trying to just deserialize into an object of a given type - changing this to
return Newtonsoft.Json.JsonConvert.DeserializeObject(value.ToString (), type);
Should then suffice.
But, I'm struggling with the Microsoft.Web.Infrastructure DLL which everything I can see from the interwebs is pointing to not using the one from Nuget, but use the one built into Mono - but I can't find that in Mono on my Mac - I'm running the latest (2.10.8). So if anyone could shed some light on this - I can then carry on.
from signalr.
Mono should work with self host. I think there's still some issues with the Asp.Net side of it but I haven't tried it in a while.
from signalr.
I tried this on mono, but got Exception at line where it needs System.Web.Hosting.IIS7WorkerRequest.
There is no such class on MONO?
from signalr.
What exception did you get?
from signalr.
+1 for mono support
from signalr.
Instead of everyone typing +1, it'd be way more helpful if someone that actually used mono could chip in and see what fails. BTW self host works fine on mono.
from signalr.
Finally got the time I was talking about a couple of months ago.
These are my findings with the latest code base.
AspNetShutDownDetector:
- HostingEnvironment.RegisterObject() is not implemented, so this crashes. But I commented it out to get to the real problems.
Next is :
System.NotImplementedException: The requested feature is not implemented.
at System.Web.HttpContextWrapper.GetService (System.Type serviceType) [0x00000] in :0
at SignalR.Hosting.AspNet.AspNetResponse.RemoveAcceptEncoding () [0x00000] in /Users/einari/Projects/SignalR/SignalR.Hosting.AspNet/AspNetResponse.cs:72
In the ReflectedHubDescriptorProvider just running the Hosting.AspNet.Sample I get this on line 30 (_hubs.Value.TryGetValue()) :
Could not load type 'Elmah.Assertions.JScriptAssertion+EvaluationStrategy' from assembly 'Elmah, Version=1.2.13605.0, Culture=neutral, PublicKeyToken=null'.
from signalr.
Finally, some real issues to look at 😄
- We can probably detect it and not blow up
- This also looks fixable. We can check for the interface and code more defensively.
- Not sure what that one is. Can you dig into that a bit more?
from signalr.
@einari How did you get SignalR working on mono with Asp.NET?
from signalr.
The biggest hurdle was the Microsoft.Web.Infrastructure.dll. If you just remove it from the bin folder and set the build action to not copy it local, since this is built into Mono. So what I've done locally is to create Mono versions of the CSProj files so we can set Mono specific options.
I'll investigate further on the Elmah problem. Just need to finish something for a client.
from signalr.
@einari I want to get it running myself on mono and I'm making changes in the mono branch. I'm using monodevelop and mono 2.10.9. Where did you find out how to ever get it running?
from signalr.
I can't remember exactly how I figured it out, its a while back actually, but for a different project. I remember just reading about it somewhere on a forum or StackOverflow.
If you pull in my fork on the Mono branch, it should compile and run with MonoDevelop : https://github.com/einari/signalr/tree/Mono
from signalr.
OK, I'm just going to keep hacking on it. Having new projects specifically for mono seems like the suck 😄. I've made a bunch of changes to the asp.net host that should play nicer with mono.
from signalr.
Haven't done the RegisterObject part as yet.
from signalr.
This should be fixed now. Delete elmah from the bin folder and it should work. I'll deeper into why that assembly fails to be loaded.
from signalr.
Totally agree, way better without a specific mono project file. What is probably possible is to have the reference set up twice in the project file with platform conditionals and then configure one of them to not copy it locally.
I'll get your changes and dive into the Elmah thing.
from signalr.
@davidfowl and @einari SignalR should be compatible with mono atm correct? If not I would love to contribute.
from signalr.
Yes it works with mono now.
Sent from my Windows Phone
From: tamaslnagy
Sent: 4/21/2012 7:13 PM
To: David Fowler
Subject: Re: [SignalR] Mono support (#58)
@davidfowl and @einari SignalR should be compatible with mono atm
correct? If not I would love to contribute.
Reply to this email directly or view it on GitHub:
#58 (comment)
from signalr.
Fantastic. Thanks!
from signalr.
Related Issues (20)
- AspNetCore.SignalR.Client package on Server side produces error 500 when clients connect to the Server HOT 1
- SignalR: The server returned status code '200' when status code '101' was expected HOT 1
- Fallback on network blocking HOT 1
- Are all servers supposed to receive calls to server-side methods when using Redis backplane?
- Invicti Enterprise detected Possible Cross-site Scripting HOT 2
- HubConnection.Error handler is not called on connection error
- SignalR Configuration On Proxy DNS Server For NGINX HOT 1
- Android java client - RuntimeException: Invocation provides 1 argument(s) but target expects 0. HOT 1
- Intermittent failure to receive messages during e2e testing in github workflow HOT 1
- TopicLookup memory leak HOT 5
- Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given) HOT 1
- Only one output binding is supported when using a binding assigned to '$return' HOT 1
- Ping from browser to ASP.Net application stops when the tab browser is not the active one
- SignalR not supporting self-signed certificates HOT 8
- SignalR C# client and deserialize using JsonSerializerContext (source generator)
- Arbitrarily disable a specific client or all
- Question: Can we use SignalR client for binance or other socket endpoints for stocks information? HOT 1
- Failed to invoke 'xxx' due to an error on the server. HOT 1
- Issue with Microsoft.AspNet.SignalR.Client hanging/crashing app after app being in background for 10 + minutes
- g
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from signalr.