Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Xamarin-套接字IO问题_Sockets_Xamarin_Websocket_Socket.io - Fatal编程技术网

Sockets Xamarin-套接字IO问题

Sockets Xamarin-套接字IO问题,sockets,xamarin,websocket,socket.io,Sockets,Xamarin,Websocket,Socket.io,我必须为Xamarin表单(PCL)应用程序聊天。我正在为套接字使用NuGet包SocketIoclientNotNet 起初我根本无法连接。在互联网上做了很多研究后,我在Github上找到了它,因此我降低了该库的级别,但也降低了所有依赖项的级别: EngineIOClient.Net V0.9.22 SocketIOClientDotNet V0.9.13 WebSocket4Net V0.14.1.0 这是更好的,连接似乎工作,但我遇到了一个新问题:连接非常不稳定,我很难测试任何原因。一

我必须为Xamarin表单(PCL)应用程序聊天。我正在为套接字使用NuGet包SocketIoclientNotNet

起初我根本无法连接。在互联网上做了很多研究后,我在Github上找到了它,因此我降低了该库的级别,但也降低了所有依赖项的级别:

  • EngineIOClient.Net V0.9.22
  • SocketIOClientDotNet V0.9.13
  • WebSocket4Net V0.14.1.0
这是更好的,连接似乎工作,但我遇到了一个新问题:连接非常不稳定,我很难测试任何原因。一次它可以连接多次,一次它根本不连接,这很烦人

我的代码非常简单:

通用代码:

ISocketIO接口:

应用程序类别:

iOS代码(与Android相同):

SocketIO类

AppDelegate:


也许我做错了什么,也许它存在另一个插件,我可以用它来代替这个插件。

你试过在没有这行的情况下运行这个插件吗

_socket.Connect();
我仅使用

_socket = IO.Socket("wss://" + HostUrl + "/");
public partial class App : Application
{
    public static MsgService MsgService;

    public App(ISocketIO socket)
    {
        InitializeComponent();

        Language = Language.FRENCH;
        MsgService = new MsgService(socket);
        MsgService.Connect();
        MainPage = new NavigationPage(new MainPage());
    }

    ...
}
[assembly: Xamarin.Forms.Dependency(typeof(SocketIO))]
namespace MeetYou.iOS
{
    public class SocketIO : ISocketIO
    {
        Socket _socket;

        public void Connect(string url)
        {
            IO.Options opt = new IO.Options
            {
                Path = "path_here"
            };
            _socket = IO.Socket(url, opt);
            _socket.Connect();
        }
    }
}
[Register("AppDelegate")]
public class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions)
    {
        Xamarin.Forms.Forms.Init();
        LoadApplication(new App(new SocketIO()));

        return base.FinishedLaunching(uiApplication, launchOptions);
    }
}
_socket.Connect();
_socket = IO.Socket("wss://" + HostUrl + "/");