Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to HTTP 1? #181

Closed
mind6 opened this issue Nov 19, 2022 · 5 comments
Closed

Update to HTTP 1? #181

mind6 opened this issue Nov 19, 2022 · 5 comments

Comments

@mind6
Copy link

mind6 commented Nov 19, 2022

There are several popular package dependencies on WebSockets which conflict with using HTTPv1 in the same environment.

JuliaGizmos/WebIO.jl#500

Can we make a new release that makes WebSockets use HTTP1? That might be easier than updating several packages to drop the use of WebSockets.

I tried to look at this but I am having trouble passing tests on Windows as well as WSL/Ubuntu.

On WSL/Ubutnu

Base.show: Error During Test at /home/kirby/.julia/dev/WebSockets/test/runtests.jl:12
  Got exception outside of a @test
  LoadError: TypeError: in typeassert, expected Ptr{Nothing}, got a value of type Ptr{UInt64}
  Stacktrace:
    [1] getproperty
      @ ./stream.jl:60 [inlined]
    [2] _uv_status_tuple
      @ ~/.julia/dev/WebSockets/src/show_ws.jl:73 [inlined]
    [3] top-level scope
      @ ~/.julia/dev/WebSockets/test/show_test.jl:12
    [4] include(fname::String)
      @ Base.MainInclude ./client.jl:476
    [5] macro expansion
      @ ~/.julia/dev/WebSockets/test/runtests.jl:13 [inlined]
    [6] macro expansion
      @ /opt/julia-1.8.2/share/julia/stdlib/v1.8/Test/src/Test.jl:1357 [inlined]
    [7] macro expansion
      @ ~/.julia/dev/WebSockets/test/runtests.jl:13 [inlined]
    [8] macro expansion
      @ /opt/julia-1.8.2/share/julia/stdlib/v1.8/Test/src/Test.jl:1357 [inlined]
    [9] top-level scope
      @ ~/.julia/dev/WebSockets/test/runtests.jl:8
   [10] include(fname::String)
      @ Base.MainInclude ./client.jl:476
   [11] top-level scope
      @ none:6
   [12] eval
      @ ./boot.jl:368 [inlined]
   [13] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:276
   [14] _start()
      @ Base ./client.jl:522
  in expression starting at /home/kirby/.julia/dev/WebSockets/test/show_test.jl:7
...
Test Summary:                   | Pass  Error  Total     Time
WebSockets                      |  986      6    992  3m42.3s
  Base.show                     |           1      1     1.3s
  WebSocketLogger               |   57            57     3.8s
  Fragment and unit             |  823           823    22.9s
  Handshake                     |   27            27     1.9s
  Client                        |   13            13    41.1s
  Client_listen                 |           1      1     8.7s
  Client_serverWS               |   16      4     20    36.0s
  Abrupt close & error handling |   50            50  1m46.3s

On Windows it freezes after starting the Client_listen test.

@hustf
Copy link
Collaborator

hustf commented Nov 19, 2022

Thanks for the ref. to the WebIO discussion. Also ref. #179. I believe a lot of effort has been put into HTTP lately, but there may still be features here that is lacking in HTTP.jl. I don't know.

It seems you are temporarily stranded on a detail. However, @anj00 just submitted PR #182. Are you already working together on this, or could you make suggestions to that PR based on your local changes?

@mind6
Copy link
Author

mind6 commented Nov 19, 2022

I didn't know he's working on it. He's further along than me I hope his PR can work. 😃

@hustf
Copy link
Collaborator

hustf commented Nov 19, 2022

I will be travelling for the next few days. It would be really great if you could help out with the PR, see that last comment!

@mind6
Copy link
Author

mind6 commented Nov 20, 2022

Alright. I pass the original tests after updating show_test.jl. Looks like it last worked pre-Julia 1.6

@hustf
Copy link
Collaborator

hustf commented Nov 29, 2022

We have now published v1.6.0, since there is some holdup in other packages.

While updating README, I discovered one obstacle: Returning Response(200) is no longer acceptable to HTTP.jl, while other response codes are.

Thanks for the input, and don't hesitate to PR if you have further improvements!

@hustf hustf closed this as completed Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants