Как вы делаете C# сервер, который может хранить свои подключения к клиентам и обновлять их при необходимости - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь сделать простую многопользовательскую пошаговую игру. У меня мало опыта с c# серверами, поэтому я пытаюсь учиться. Он должен быть в состоянии играть что-то вроде шахмат на целых rnet.

Моя цель : иметь сервер, который может принимать сообщения от клиентов (например, присоединиться к игре, сделать двигаться и т. д. c) и иметь возможность сохранять соединение с Клиентом, когда они присоединяются, а затем обновлять их в отношении информации в игре в любое время, например, когда противник движется или что-то в этом роде. (Я хотел бы иметь возможность расширить его до более чем двух игроков)

Моя проблема : все, что я могу найти о c# серверах - это сокеты. Насколько я могу судить, проблема с сокетами заключается в том, что они являются односторонними, то есть клиент может получать данные только один раз после отправки данных. Я хотел бы иметь возможность обновлять их несколько раз после этого, показывая в режиме реального времени, что произошло в игровом мире после того, как их ход закончился.

Как бы мне этого добиться? Нужны ли мне клиенты, чтобы у них тоже были слушатели? Как сохранить соединение при создании нового сокета при каждом новом запросе?

Спасибо за любую помощь / знания, которые вы можете дать!

1 Ответ

2 голосов
/ 04 апреля 2020

Я не уверен, какие сокеты вы имеете в виду, но WebSocket - это технология, которая, в нескольких словах, обогащает HTTP полнодуплексной связью между клиентом и сервером. Если мы говорим о C#, посмотрите на SignalR , который может использовать WebSocket.

...