{"id":27531227,"url":"https://github.com/richardschoen/mapepire-dotnet","last_synced_at":"2025-04-18T17:49:22.738Z","repository":{"id":275872886,"uuid":"850426536","full_name":"richardschoen/mapepire-dotnet","owner":"richardschoen","description":".Net Client class for the IBM Mapepire Data Server","archived":false,"fork":false,"pushed_at":"2025-02-05T02:08:04.000Z","size":40,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T03:18:55.912Z","etag":null,"topics":["call","client","command","ibmi","jdbc","mapepire","program","sql","websockets"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richardschoen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-31T18:29:38.000Z","updated_at":"2025-02-05T02:08:07.000Z","dependencies_parsed_at":"2025-02-05T03:18:58.152Z","dependency_job_id":"8f9ebb7e-a18b-40d6-98b7-5d452e95380d","html_url":"https://github.com/richardschoen/mapepire-dotnet","commit_stats":null,"previous_names":["richardschoen/mapepire-dotnet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardschoen%2Fmapepire-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardschoen%2Fmapepire-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardschoen%2Fmapepire-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardschoen%2Fmapepire-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardschoen","download_url":"https://codeload.github.com/richardschoen/mapepire-dotnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249526943,"owners_count":21286335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["call","client","command","ibmi","jdbc","mapepire","program","sql","websockets"],"created_at":"2025-04-18T17:49:22.087Z","updated_at":"2025-04-18T17:49:22.732Z","avatar_url":"https://github.com/richardschoen.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .NET Client class for IBM i Mapepire WebSockets Data Server\nThis class is a .NET WebSocket client class for the IBM i Mapepire WebSocket Data Server component.    \n\nThe Mapepire server supports TLS1.3 by default so this class will only work on Windows 11 or other platforms that support TLS1.3 natively unless you disable SSL.  \n\n❗ Disabling SSL is not advised. \n\nLearn more about the IBM i Mapepire Server component here:   \nhttps://github.com/Mapepire-IBMi\n\nInstalling Mapepire server   \nhttps://mapepire-ibmi.github.io/guides/sysadmin   \n\n❗ Note: Currently there is an issue with DotNet WebSockets, SSL and Windows 10 and TLS 1.3. To test on Windows 10 you will need to disable SSL when starting up the WebSocket server. Or make sure you're testing on Windows 11 where TLS 1.3 client is supported and make sure your have a valid certificate or set the ```allowinvalidcerts``` switch to true to bypass strict certificate checking. Or rework the C# class to use the commercial Rebex WebSocket controls if TLS1.3 is needed on Windows 10 and you want to also allow invalid certificates on Windows 10. Rebex supports TLS 1.3 on several platforms natively and can allow invalid certificates to be used. \n\n# Starting up mapepire server without SSL for testing   \nStart up the mapepire server without SSL via the following command:   \n```MP_UNSECURE=true /QOpenSys/pkgs/bin/mapepire```\n\n# Submit start up for mapepire server without SSL via QSHBASH   \n```\nSBMJOB CMD(QSHONI/QSHBASH CMDLINE('MP_UNSECURE=true /QOpenSys/pkgs/bin/mapepire') \nSETPKGPATH(*YES) PRTSTDOUT(*YES) PRTSPLF(STRMAPEPIR)\nPASEJOBNAM(MAPEPIRETH)) JOB(STRMAPEPIR) JOBQ(QUSRNOMAX) USER(\u0026USERID)\nJOBMSGQFL(*WRAP) ALWMLTTHD(*YES)            \n```\n\n# Starting up mapepire server with SSL TLS 1.3 for testing   \nStart up the mapepire server without SSL via the following command:   \n```/QOpenSys/pkgs/bin/mapepire```\n\n# Submit start up for mapepire server with SSL TLS 1.3 via QSHBASH   \n```\nSBMJOB CMD(QSHONI/QSHBASH CMDLINE('/QOpenSys/pkgs/bin/mapepire') \nSETPKGPATH(*YES) PRTSTDOUT(*YES) PRTSPLF(STRMAPEPIR)\nPASEJOBNAM(MAPEPIRETH)) JOB(STRMAPEPIR) JOBQ(QUSRNOMAX) USER(\u0026USERID)\nJOBMSGQFL(*WRAP) ALWMLTTHD(*YES)            \n```\n\n# Sample C# test sequence   \nThis is a very simple sample connect and query sequence.   \n\nCopy the following statements into a Dotnet C# Console project. \n```\n// Set user connection variables\nbool secure = false; // This assumes non-SSL server\nstring host = \"hostname\";\nint port = 8076;\nstring user = \"user1\";\nstring pass = \"pass1\";\nbool allowinvalidcerts = false; // Set to true to allow invalid TLS1.3 certs on Windows 11.\n                                // Windows 10 and below does not natively support TLS1.3\n\n// Instantiate Mapepire Client class\nvar client = new MapepireClient.Client();\n\n// Connect to WebSocket server\nvar taskWebConnect = Task.Run(() =\u003e client.Connect(host,user,pass,port,secure));\ntaskWebConnect.Wait();\n\n// Write out connection results\nConsole.WriteLine(client.GetConnectionResults());\n\n// Run SQL Query\nvar taskWebQuery = Task.Run(() =\u003e client.ExecSqlQuery(\"select * from qiws.qcustcdt\",\"q1\"));\ntaskWebQuery.Wait();\n\n// Write out sql query results\nConsole.WriteLine(client.GetQueryResults());\n\n// Disconnect from WebSocket server\nvar taskWebDisconnect = Task.Run(() =\u003e client.Disconnect());\ntaskWebDisconnect.Wait();\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardschoen%2Fmapepire-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardschoen%2Fmapepire-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardschoen%2Fmapepire-dotnet/lists"}