Я пытаюсь создать приложение клиент / сервер websockets.Все отлично работает, когда я использовал C # для обоих,
Сервер (C #) выглядит следующим образом:
static void Main(string[] args)
{
//Basic settings
Socket listenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream , ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
listenerSocket.Bind(ipEnd);
listenerSocket.Listen(0); //Listening...
Socket clientSocket = listenerSocket.Accept(); //Client call!
byte[] Buffer = new byte[clientSocket.SendBufferSize]; //Create a empty buffer prior receiving
int readByte;
do
{
readByte = clientSocket.Receive(Buffer); //Read client
byte[] rData = new byte[readByte];
Array.Copy(Buffer, rData, readByte);
Console.WriteLine("We got: " + System.Text.Encoding.UTF8.GetString(rData));
} while (readByte > 0);
Console.WriteLine("Client disconnected");
Console.ReadKey();
}
Клиент (C #) выглядит следующим образом:
static void Main(string[] args)
{
Console.WriteLine("This is the client");
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
server.Connect(ipEnd);
String sendData = "";
do
{
Console.Write("Data to send:");
sendData = Console.ReadLine();
server.Send(Encoding.UTF8.GetBytes(sendData));
} while (sendData.Length > 0);
server.Close();
}
Тем не менее, мое золото - это создание клиента в приложении Javascript.(не node.js) хостинг на веб-странице HTML, подключенной к серверу c #.
Я попробовал следующее:
<Script>
var socket;
//window.WebSocket = window.WebSocket || window.MozWebSocket;
var Socket = new WebSocket("ws://127.0.0.1:3000");
socket.addEventListener("open", function (evt) {
alert("Connection opened: " + socket.readyState);
}, false);
socket.addEventListener("error", function (evt) {
alert('Error : ' + evt.message);
}, false);
if (socket.readyState == WebSocket.OPEN) {
socket.send("hello");
}
</Script>
Когда я загружал веб-страницу, сервер сказал, что я подключен:
Мы получили:
GET / HTTP/1.1
Host: 127.0.0.1:3000
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Upgrade: websocket
Origin: http://localhost
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br
Accept-Language: en-CA,en;q=0.9,en-GB;q=0.8,en-US;q=0.7,fr;q=0.6
Sec-WebSocket-Key: PYYTro//nISgObfnhQ22wg==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Следующим шагом является чтение / запись с / на сервер с использованием javascript, как я делаю с клиентом C #.Кто-нибудь может помочь мне написать правильный код для этого в javascript?
Заранее спасибо.