Skip to content

System.IO.InvalidDataException: Missing required property 'protocol' and System.IO.InvalidDataException: Missing required property 'type' when using Java client #23291

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

Closed
wanlwanl opened this issue Jun 24, 2020 · 1 comment
Assignees
Labels
area-signalr Includes: SignalR clients and servers
Milestone

Comments

@wanlwanl
Copy link

wanlwanl commented Jun 24, 2020

Describe the bug

A clear and concise description of what the bug is.
When I use Java client, it's easy to get 2 kinds of error on server:
Missing required property 'protocol'. and System.IO.InvalidDataException: Missing required property 'type'.

To Reproduce

Use this code to start/stop clients:

import com.microsoft.signalr.HubConnection;
import com.microsoft.signalr.HubConnectionBuilder;
import io.reactivex.Single;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Chat {
    public static HubConnection create(boolean service)
    {
        if (service) {
            HubConnection hubConnection = HubConnectionBuilder
//                .create("http://localhost:5000/chat")
                    .create("http://localhost:8080/client/?hub=hub")
                    .withAccessTokenProvider(Single.defer(() -> {

                        return Single.just("...");
                    }))
                    .build();

            return hubConnection;
        } else {
            HubConnection hubConnection = HubConnectionBuilder
                .create("http://localhost:5000/chat")
                    .build();

            return hubConnection;
        }


    }

    public static void main(String[] args) throws Exception {
        ThreadPoolExecutor executor = new ThreadPoolExecutor(100, 200, 300,
                TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(3),
                new ThreadPoolExecutor.CallerRunsPolicy());

        HubConnection hubConnection = create(false);

        for(int i=0;i<10;i++) start(executor, hubConnection);
        for(int i=0;i<10;i++) stop(executor, hubConnection);

    }

    public static void stop(ThreadPoolExecutor executor, HubConnection hubConnection) {
        executor.execute(() -> {
            while (true) {
                try {
                    hubConnection.stop();
                    Thread.sleep((int) (Math.random() * 500));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public static void start(ThreadPoolExecutor executor, HubConnection hubConnection) {
        executor.execute(() -> {
            while (true) {
                try {
                    hubConnection.start();
                    Thread.sleep((int) (Math.random() * 50));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

Exceptions (if any)

System.IO.InvalidDataException: Missing required property 'protocol'. Message content: {"type":6}
   at Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol.TryParseRequestMessage(ReadOnlySequence`1& buffer, HandshakeRequestMessage& requestMessage)
   at Microsoft.AspNetCore.SignalR.HubConnectionContext.HandshakeAsync(TimeSpan timeout, IReadOnlyList`1 supportedProtocols, IHubProtocolResolver protocolResolver, IUserIdProvider userIdProvider, Boolean enableDetailedErrors)

and

System.IO.InvalidDataException: Missing required property 'type'.
   at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.ParseMessage(Utf8BufferTextReader textReader, IInvocationBinder binder)
   at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.TryParseMessage(ReadOnlySequence`1& input, IInvocationBinder binder, HubMessage& message)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.DispatchMessagesAsync(HubConnectionContext connection)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.RunHubAsync(HubConnectionContext connection)

Further technical details

  • ASP.NET Core version
  • Include the output of dotnet --info
  • The IDE (VS / VS Code/ VS4Mac) you're running on, and it's version

Signalr java client:

<dependency>
            <groupId>com.microsoft.signalr</groupId>
            <artifactId>signalr</artifactId>
            <version>5.0.0-preview.3.20215.14</version>
        </dependency>
.NET SDK (reflecting any global.json):
 Version:   5.0.100-preview.5.20279.10
 Commit:    8139f1b74e

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.100-preview.5.20279.10\

Host (useful for support):
  Version: 5.0.0-preview.5.20278.1
  Commit:  4ae4e2fe08

.NET SDKs installed:
  2.1.700 [C:\Program Files\dotnet\sdk]
  2.2.207 [C:\Program Files\dotnet\sdk]
  3.1.200 [C:\Program Files\dotnet\sdk]
  5.0.100-preview.5.20279.10 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.16 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.16 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0-preview.5.20279.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.16 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0-preview.5.20278.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.0-preview.5.20278.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

IDE:
IntelliJ IDEA 2020.1.2 (Community Edition)
Build #IC-201.7846.76, built on June 1, 2020
Runtime version: 11.0.7+10-b765.53 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 2014M
Cores: 4

@javiercn javiercn added the area-signalr Includes: SignalR clients and servers label Jun 24, 2020
@BrennanConroy BrennanConroy self-assigned this Jun 29, 2020
@BrennanConroy
Copy link
Member

Should be fixed with #24166

@ghost ghost locked as resolved and limited conversation to collaborators Sep 24, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-signalr Includes: SignalR clients and servers
Projects
None yet
Development

No branches or pull requests

3 participants