sockjs-erlang icon indicating copy to clipboard operation
sockjs-erlang copied to clipboard

Add Cowboy 0.6.1 support

Open haspadar opened this issue 12 years ago • 12 comments

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

haspadar avatar Oct 01 '12 12:10 haspadar

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

nivertech avatar Oct 04 '12 18:10 nivertech

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

majek avatar Oct 05 '12 16:10 majek

Related: sockjs/sockjs-protocol#57

majek avatar Oct 30 '12 18:10 majek

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 avatar Oct 30 '12 18:10 majek

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

majek avatar Oct 30 '12 19:10 majek

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

yrashk avatar Oct 30 '12 19:10 yrashk

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

majek avatar Oct 30 '12 19:10 majek

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.

yrashk avatar Oct 30 '12 19:10 yrashk

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?

majek avatar Oct 30 '12 19:10 majek

  1. vice versa
  2. few return values changed, like body_qs

On Tue, Oct 30, 2012 at 12:32 PM, Marek Majkowski [email protected]:

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.

yrashk avatar Oct 30 '12 19:10 yrashk

@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.

majek avatar Oct 30 '12 20:10 majek

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 [email protected]:

@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.

yrashk avatar Oct 30 '12 20:10 yrashk