Jim*_*ott 44
Codeplex上有一个项目(NuGet也是),它是socket.io的C#客户端.(我是这个项目的作者 - 所以我有偏见)我无法在客户端找到我需要的东西,所以我构建它并将其重新发布到开放状态.
示例客户端样式:
socket.On("news", (data) => {
Console.WriteLine(data);
});
Run Code Online (Sandbox Code Playgroud)
Jar*_*ach 28
使用以下库:https://github.com/sta/websocket-sharp 可以通过NuGet获得:
PM> Install-Package WebSocketSharp -Pre
要连接到Socket.IO 1.0 +服务器,请使用以下语法:
using (var ws = new WebSocket("ws://127.0.0.1:1337/socket.io/?EIO=2&transport=websocket"))
{
ws.OnMessage += (sender, e) =>
Console.WriteLine("New message from controller: " + e.Data);
ws.Connect();
Console.ReadKey(true);
}
Run Code Online (Sandbox Code Playgroud)
换句话说,将其附加到localhost:port - "socket.io/?EIO=2&transport=websocket".
我的完整服务器代码:https://gist.github.com/anonymous/574133a15f7faf39fdb5
这个包支持最新的协议。
Github - https://github.com/HavenDV/H.Socket.IO/
C#
实时示例 - https://dotnetfiddle.net/FWMpQ3/
VB.NET
实时示例 - https://dotnetfiddle.net/WzIdnG/
Nuget:
Install-Package H.Socket.IO
Run Code Online (Sandbox Code Playgroud)
Install-Package H.Socket.IO
Run Code Online (Sandbox Code Playgroud)
它还支持命名空间:
using System;
using System.Threading.Tasks;
using H.Socket.IO;
#nullable enable
public class ChatMessage
{
public string? Username { get; set; }
public string? Message { get; set; }
public long NumUsers { get; set; }
}
public async Task ConnectToChatNowShTest()
{
await using var client = new SocketIoClient();
client.Connected += (sender, args) => Console.WriteLine($"Connected: {args.Namespace}");
client.Disconnected += (sender, args) => Console.WriteLine($"Disconnected. Reason: {args.Reason}, Status: {args.Status:G}");
client.EventReceived += (sender, args) => Console.WriteLine($"EventReceived: Namespace: {args.Namespace}, Value: {args.Value}, IsHandled: {args.IsHandled}");
client.HandledEventReceived += (sender, args) => Console.WriteLine($"HandledEventReceived: Namespace: {args.Namespace}, Value: {args.Value}");
client.UnhandledEventReceived += (sender, args) => Console.WriteLine($"UnhandledEventReceived: Namespace: {args.Namespace}, Value: {args.Value}");
client.ErrorReceived += (sender, args) => Console.WriteLine($"ErrorReceived: Namespace: {args.Namespace}, Value: {args.Value}");
client.ExceptionOccurred += (sender, args) => Console.WriteLine($"ExceptionOccurred: {args.Value}");
client.On("login", () =>
{
Console.WriteLine("You are logged in.");
});
client.On("login", json =>
{
Console.WriteLine($"You are logged in. Json: \"{json}\"");
});
client.On<ChatMessage>("login", message =>
{
Console.WriteLine($"You are logged in. Total number of users: {message.NumUsers}");
});
client.On<ChatMessage>("user joined", message =>
{
Console.WriteLine($"User joined: {message.Username}. Total number of users: {message.NumUsers}");
});
client.On<ChatMessage>("user left", message =>
{
Console.WriteLine($"User left: {message.Username}. Total number of users: {message.NumUsers}");
});
client.On<ChatMessage>("typing", message =>
{
Console.WriteLine($"User typing: {message.Username}");
});
client.On<ChatMessage>("stop typing", message =>
{
Console.WriteLine($"User stop typing: {message.Username}");
});
client.On<ChatMessage>("new message", message =>
{
Console.WriteLine($"New message from user \"{message.Username}\": {message.Message}");
});
await client.ConnectAsync(new Uri("wss://socketio-chat-h9jt.herokuapp.com/"));
await client.Emit("add user", "C# H.Socket.IO Test User");
await Task.Delay(TimeSpan.FromMilliseconds(200));
await client.Emit("typing");
await Task.Delay(TimeSpan.FromMilliseconds(200));
await client.Emit("new message", "hello");
await Task.Delay(TimeSpan.FromMilliseconds(200));
await client.Emit("stop typing");
await Task.Delay(TimeSpan.FromSeconds(2));
await client.DisconnectAsync();
}
Run Code Online (Sandbox Code Playgroud)
好吧,我找到了另一个与 socket.io 配合使用的 .Net 库。它也是最新的。按照下面的链接,
using Quobject.SocketIoClientDotNet.Client;
var socket = IO.Socket("http://localhost");
socket.On(Socket.EVENT_CONNECT, () =>
{
socket.Emit("hi");
});
socket.On("hi", (data) =>
{
Console.WriteLine(data);
socket.Disconnect();
});
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
希望,它可以帮助某人。
归档时间: |
|
查看次数: |
68225 次 |
最近记录: |