fix Ext.cs, WebSocket.cs and Add wsclient1/*
This commit is contained in:
parent
7cea727db1
commit
240a4e61ba
@ -5,6 +5,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "websocket-sharp", "websocke
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wsclient", "wsclient\wsclient.csproj", "{52805AEC-EFB1-4F42-BB8E-3ED4E692C568}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wsclient1", "wsclient1\wsclient1.csproj", "{B0B609B7-A81C-46B0-A9B8-82E9716D355B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -21,6 +23,14 @@ Global
|
||||
{52805AEC-EFB1-4F42-BB8E-3ED4E692C568}.Release_Ubuntu|Any CPU.Build.0 = Release_Ubuntu|Any CPU
|
||||
{52805AEC-EFB1-4F42-BB8E-3ED4E692C568}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52805AEC-EFB1-4F42-BB8E-3ED4E692C568}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Debug_Ubuntu|Any CPU.ActiveCfg = Debug_Ubuntu|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Debug_Ubuntu|Any CPU.Build.0 = Debug_Ubuntu|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Release_Ubuntu|Any CPU.ActiveCfg = Release_Ubuntu|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Release_Ubuntu|Any CPU.Build.0 = Release_Ubuntu|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B0B609B7-A81C-46B0-A9B8-82E9716D355B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B357BAC7-529E-4D81-A0D2-71041B19C8DE}.Debug_Ubuntu|Any CPU.ActiveCfg = Debug_Ubuntu|Any CPU
|
||||
{B357BAC7-529E-4D81-A0D2-71041B19C8DE}.Debug_Ubuntu|Any CPU.Build.0 = Debug_Ubuntu|Any CPU
|
||||
{B357BAC7-529E-4D81-A0D2-71041B19C8DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
|
@ -2,7 +2,7 @@
|
||||
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug_Ubuntu" ctype="Workspace" />
|
||||
<MonoDevelop.Ide.Workbench ActiveDocument="websocket-sharp/WebSocket.cs" ctype="Workbench">
|
||||
<Files>
|
||||
<File FileName="websocket-sharp/WebSocket.cs" Line="321" Column="66" />
|
||||
<File FileName="websocket-sharp/WebSocket.cs" Line="142" Column="22" />
|
||||
</Files>
|
||||
</MonoDevelop.Ide.Workbench>
|
||||
<MonoDevelop.Ide.DebuggingService.Breakpoints>
|
||||
|
@ -93,7 +93,7 @@ namespace WebSocketSharp
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public static void NotEqualsDo(this string expected, string actual, Action<string, string> act)
|
||||
public static void AreNotEqualDo(this string expected, string actual, Action<string, string> act)
|
||||
{
|
||||
if (expected != actual)
|
||||
{
|
||||
|
@ -129,8 +129,41 @@ namespace WebSocketSharp
|
||||
this.protocol = protocol;
|
||||
}
|
||||
|
||||
public WebSocket(
|
||||
string url,
|
||||
EventHandler onOpen,
|
||||
MessageEventHandler onMessage,
|
||||
MessageEventHandler onError,
|
||||
EventHandler onClose)
|
||||
: this(url, String.Empty, onOpen, onMessage, onError, onClose)
|
||||
{
|
||||
}
|
||||
|
||||
public WebSocket(
|
||||
string url,
|
||||
string protocol,
|
||||
EventHandler onOpen,
|
||||
MessageEventHandler onMessage,
|
||||
MessageEventHandler onError,
|
||||
EventHandler onClose)
|
||||
: this(url, protocol)
|
||||
{
|
||||
this.OnOpen += onOpen;
|
||||
this.OnMessage += onMessage;
|
||||
this.OnError += onError;
|
||||
this.OnClose += onClose;
|
||||
|
||||
Connect();
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (readyState == WsState.OPEN)
|
||||
{
|
||||
Console.WriteLine("WS: Info @Connect: Connection is already established.");
|
||||
return;
|
||||
}
|
||||
|
||||
createConnection();
|
||||
doHandshake();
|
||||
|
||||
@ -286,9 +319,10 @@ namespace WebSocketSharp
|
||||
{
|
||||
throw new IOException("Invalid handshake response: " + a);
|
||||
};
|
||||
"HTTP/1.1 101 WebSocket Protocol Handshake".NotEqualsDo(response[0], act);
|
||||
"Upgrade: WebSocket".NotEqualsDo(response[1], act);
|
||||
"Connection: Upgrade".NotEqualsDo(response[2], act);
|
||||
|
||||
"HTTP/1.1 101 WebSocket Protocol Handshake".AreNotEqualDo(response[0], act);
|
||||
"Upgrade: WebSocket".AreNotEqualDo(response[1], act);
|
||||
"Connection: Upgrade".AreNotEqualDo(response[2], act);
|
||||
|
||||
for (int i = 3; i < response.Length; i++)
|
||||
{
|
||||
@ -305,13 +339,13 @@ namespace WebSocketSharp
|
||||
string expectedResToHexStr = BitConverter.ToString(expectedRes);
|
||||
string actualResToHexStr = BitConverter.ToString(actualRes);
|
||||
|
||||
expectedResToHexStr.NotEqualsDo(actualResToHexStr, (e, a) =>
|
||||
expectedResToHexStr.AreNotEqualDo(actualResToHexStr, (e, a) =>
|
||||
{
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
Console.WriteLine("WS: Error @doHandshake: Invalid challenge response.");
|
||||
Console.WriteLine("\texpected: {0}", e);
|
||||
Console.WriteLine("\tactual : {0}", a);
|
||||
#endif
|
||||
#endif
|
||||
throw new IOException("Invalid challenge response: " + a);
|
||||
});
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
27
wsclient1/AssemblyInfo.cs
Normal file
27
wsclient1/AssemblyInfo.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
// Information about this assembly is defined by the following attributes.
|
||||
// Change them to the values specific to your project.
|
||||
|
||||
[assembly: AssemblyTitle("wsclient1")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
|
||||
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
|
||||
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
// The following attributes are used to specify the signing key for the assembly,
|
||||
// if desired. See the Mono documentation for more information about signing.
|
||||
|
||||
//[assembly: AssemblyDelaySign(false)]
|
||||
//[assembly: AssemblyKeyFile("")]
|
||||
|
BIN
wsclient1/bin/Debug/websocket-sharp.dll
Executable file
BIN
wsclient1/bin/Debug/websocket-sharp.dll
Executable file
Binary file not shown.
BIN
wsclient1/bin/Debug/websocket-sharp.dll.mdb
Normal file
BIN
wsclient1/bin/Debug/websocket-sharp.dll.mdb
Normal file
Binary file not shown.
BIN
wsclient1/bin/Debug/wsclient1.exe
Executable file
BIN
wsclient1/bin/Debug/wsclient1.exe
Executable file
Binary file not shown.
BIN
wsclient1/bin/Debug/wsclient1.exe.mdb
Normal file
BIN
wsclient1/bin/Debug/wsclient1.exe.mdb
Normal file
Binary file not shown.
BIN
wsclient1/bin/Debug_Ubuntu/websocket-sharp.dll
Executable file
BIN
wsclient1/bin/Debug_Ubuntu/websocket-sharp.dll
Executable file
Binary file not shown.
BIN
wsclient1/bin/Debug_Ubuntu/websocket-sharp.dll.mdb
Normal file
BIN
wsclient1/bin/Debug_Ubuntu/websocket-sharp.dll.mdb
Normal file
Binary file not shown.
BIN
wsclient1/bin/Debug_Ubuntu/wsclient1.exe
Executable file
BIN
wsclient1/bin/Debug_Ubuntu/wsclient1.exe
Executable file
Binary file not shown.
BIN
wsclient1/bin/Debug_Ubuntu/wsclient1.exe.mdb
Normal file
BIN
wsclient1/bin/Debug_Ubuntu/wsclient1.exe.mdb
Normal file
Binary file not shown.
BIN
wsclient1/bin/Release/websocket-sharp.dll
Executable file
BIN
wsclient1/bin/Release/websocket-sharp.dll
Executable file
Binary file not shown.
BIN
wsclient1/bin/Release/wsclient1.exe
Executable file
BIN
wsclient1/bin/Release/wsclient1.exe
Executable file
Binary file not shown.
BIN
wsclient1/bin/Release_Ubuntu/websocket-sharp.dll
Executable file
BIN
wsclient1/bin/Release_Ubuntu/websocket-sharp.dll
Executable file
Binary file not shown.
BIN
wsclient1/bin/Release_Ubuntu/wsclient1.exe
Executable file
BIN
wsclient1/bin/Release_Ubuntu/wsclient1.exe
Executable file
Binary file not shown.
65
wsclient1/wsclient1.cs
Normal file
65
wsclient1/wsclient1.cs
Normal file
@ -0,0 +1,65 @@
|
||||
#if NOTIFY
|
||||
using Notifications;
|
||||
#endif
|
||||
using System;
|
||||
using System.Threading;
|
||||
using WebSocketSharp;
|
||||
|
||||
namespace Example
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
EventHandler onOpen = (o, e) =>
|
||||
{
|
||||
Console.WriteLine("[WebSocket] Opened.");
|
||||
};
|
||||
|
||||
MessageEventHandler onMessage = (o, s) =>
|
||||
{
|
||||
#if NOTIFY
|
||||
Notification nf = new Notification("[WebSocket] Message",
|
||||
s,
|
||||
"notification-message-im");
|
||||
nf.AddHint("append", "allowed");
|
||||
nf.Show();
|
||||
#else
|
||||
Console.WriteLine("[WebSocket] Message: {0}", s);
|
||||
#endif
|
||||
};
|
||||
|
||||
MessageEventHandler onError = (o, s) =>
|
||||
{
|
||||
Console.WriteLine("[WebSocket] Error : {0}", s);
|
||||
};
|
||||
|
||||
EventHandler onClose = (o, e) =>
|
||||
{
|
||||
Console.WriteLine("[WebSocket] Closed.");
|
||||
};
|
||||
|
||||
//using (WebSocket ws = new WebSocket("ws://localhost:8000/", onOpen, onMessage, onError, onClose))
|
||||
using (WebSocket ws = new WebSocket("ws://localhost:8000/", "chat", onOpen, onMessage, onError, onClose))
|
||||
{
|
||||
Thread.Sleep(500);
|
||||
Console.WriteLine("\nType \"exit\" to exit.\n");
|
||||
|
||||
string data;
|
||||
while (true)
|
||||
{
|
||||
Thread.Sleep(500);
|
||||
|
||||
Console.Write("> ");
|
||||
data = Console.ReadLine();
|
||||
if (data == "exit")
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
ws.Send(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
68
wsclient1/wsclient1.csproj
Normal file
68
wsclient1/wsclient1.csproj
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{B0B609B7-A81C-46B0-A9B8-82E9716D355B}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>wsclient1</RootNamespace>
|
||||
<AssemblyName>wsclient1</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Ubuntu|AnyCPU' ">
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug_Ubuntu</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
<DefineConstants>DEBUG,NOTIFY</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_Ubuntu|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Release_Ubuntu</OutputPath>
|
||||
<DefineConstants>NOTIFY</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Externalconsole>true</Externalconsole>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="notify-sharp, Version=0.4.0.0, Culture=neutral, PublicKeyToken=2df29c54e245917a">
|
||||
<Package>notify-sharp</Package>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="wsclient1.cs" />
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\websocket-sharp\websocket-sharp.csproj">
|
||||
<Project>{B357BAC7-529E-4D81-A0D2-71041B19C8DE}</Project>
|
||||
<Name>websocket-sharp</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
BIN
wsclient1/wsclient1.pidb
Normal file
BIN
wsclient1/wsclient1.pidb
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user