sockjs / sockjs-erlang

WebSocket emulation - Erlang server
http://sockjs.org
Other
266 stars 120 forks source link

Add Cowboy 0.6.1 support #37

Open haspadar opened 12 years ago

haspadar commented 12 years ago

See https://github.com/extend/cowboy/blob/master/CHANGELOG.md

nivertech commented 12 years ago

Cowboy API running fast, it's better to target 0.8.0

majek commented 12 years ago

Bad news: This release drops R14 compatibility. I can't do that.

majek commented 12 years ago

Related: sockjs/sockjs-protocol#57

majek commented 12 years ago

cowboy_http_req got renamed to cowboy_req. This is quite bad as changing that would break compatibility with older cowboy. Quick workaround:

$ sed -i 's/cowboy_http_req/cowboy_req/g' src/sockjs_http.erl
majek commented 12 years ago

Also @yrashk had already done the port: https://github.com/spawngrid/sockjs-erlang/tree/cowboy-master

yrashk commented 12 years ago

Yep, it's in the testing now but so far it seems to work.

majek commented 12 years ago

@yrashk Are there changes similar to b19ead66e847b149c9ccad5ffc837e58eb283c34 that could be ported to mainline without breaking compatibility with R14 and older cowboy?

yrashk commented 12 years ago

I have an idea how to do a port that will work for both versions of cowboy, but it is not going to be too pretty.

Basically, we should utilize the dispatching already in place and for old cowboy use {cowboy, Req} and for new cowboy use {cowboy1, Req} (for example). Then you can easily copy over changes from my port line by line and keep both versions.

majek commented 12 years ago

The changes seem to be:

  1. cowboy_http_req -> cowboy_req
  2. new dependency - ranch
  3. instead of cowboy:start_http we have cowboy:start_listener
  4. casing of headers (camelcase vs lowercase) (can you explain this?)
  5. cowboy_req:path vs cowboy_http_req:raw_path

Did I miss anything?

yrashk commented 12 years ago
  1. vice versa
  2. few return values changed, like body_qs

On Tue, Oct 30, 2012 at 12:32 PM, Marek Majkowski notifications@github.comwrote:

The changes seem to be:

  1. cowboy_http_req -> cowboy_req
  2. new dependency - ranch
  3. instead of cowboy:start_http we have cowboy:start_listener
  4. casing of headers (camelcase vs lowercase) (can you explain this?)
  5. cowboy_req:path vs cowboy_http_req:raw_path

Did I miss anything?

— Reply to this email directly or view it on GitHubhttps://github.com/sockjs/sockjs-erlang/issues/37#issuecomment-9919762.

majek commented 12 years ago

@yrashk I've noticed you forked master branch, not dev, therefore sockjs-protocol-dev.py fails in few more places. Could you take a look? I don't think there are many changes included on dev.

yrashk commented 12 years ago

I am trying to understand what changes at https://github.com/sockjs/sockjs-erlang/compare/master...dev are important

On Tue, Oct 30, 2012 at 1:06 PM, Marek Majkowski notifications@github.comwrote:

@yrashk https://github.com/yrashk I've noticed you forked masterbranch, not dev, therefore sockjs-protocol-dev.py fails in few more places. Could you take a look? I don't think there are many changes included on dev.

— Reply to this email directly or view it on GitHubhttps://github.com/sockjs/sockjs-erlang/issues/37#issuecomment-9920835.