使用套接字.IO在c#中

本文关键字:IO 套接字 | 更新日期: 2023-09-27 18:03:37

我正在尝试读取套接字。来自维基媒体网站的IO流。有各种语言的样本代码,但我需要得到这个工作在c#

源链接在这里:

https://wikitech.wikimedia.org/wiki/RCStream

这是JavaScript的实现。

// Requires socket.io-client 0.9.x:
// browser code can load a minified Socket.IO JavaScript library;
// standalone code can install via 'npm install socket.io-client@0.9.1'.
var io = require( 'socket.io-client' );
var socket = io.connect( 'stream.wikimedia.org/rc' );
socket.on( 'connect', function () {
     socket.emit( 'subscribe', 'commons.wikimedia.org' );
} );
socket.on( 'change', function ( data ) {
    console.log( data.title );
} );

我已经尝试了大约3个左右。net版本的socket。IO和无法获得连接。我遇到的最接近的情况是得到"无效端点"错误消息。我认为部分问题是我使用的一些库(来自Nuget和其他地方),其中不同版本的套接字。io 0.9.x

我希望这里有人能帮我找到一种在c#中工作的方法。我花了大约4个小时却一无所获。谢谢。

使用套接字.IO在c#中

你可以看看Socket的c#客户端。我喜欢SocketIoClientDotNet或SocketIO4net,这样你的代码就会像JS一样简单。

var socket = IO.Socket("http://stream.wikimedia.org/rc");
socket.On(Socket.EVENT_CONNECT, () =>
{
    socket.Emit("hi");
});
socket.On("connect", (data) =>
{
    socket.Emit("subscribe", "commons.wikimedia.org");
});
socket.On("change", (data) =>
{
    Console.WriteLine(data.title);
});