Страница 1 из 1

webgl + websocket

СообщениеДобавлено: 30 окт 2019, 10:26
danquimby
Добрый день у меня есть задача
перевод клиента с флеш на юнити(webgl) но столкнулся с проблемой что чат
который я реализовал не работает через простые socket (через wss)
можете посоветовать библиотеку для работы с закрытым подключением (нашел только websocket-sharp) но она старая (возможно есть альтернатива)

Re: webgl + websocket

СообщениеДобавлено: 02 дек 2019, 19:18
Saltant
SignalR

Re: webgl + websocket

СообщениеДобавлено: 19 дек 2019, 19:34
iCSdeveloper
как раз занимаюсь похожей задачей. Проблема в том что сетевая подсистема Unity для компиляции под платформу WebGL не работает.
пока что нашёл нетривиальный вариант - использовать HTTP и HTTP POST из C# скрипта для обмена текстом между клиентами и сервером.
Всё работает. Это конечно не совсем realtime и TCP/IP но подход имеющий право на жизнь. Никаких модулей-плугинов не требуется. C# ;-)

Re: webgl + websocket

СообщениеДобавлено: 19 дек 2019, 20:43
Saltant
Это называется WebAPI, даже для современной браузерной игры этот подход не правильный. Нужно использовать сокеты.

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 09:26
iCSdeveloper
Saltant писал(а):Это называется WebAPI, даже для современной браузерной игры этот подход не правильный. Нужно использовать сокеты.


А какой вариант ты предлагаешь? Сокеты отлично работают на Windows/Linux/MAC/Android/iOS клиентах. Но при сборке из Unity3D проекта под платформу WebGL - не работают. Есть мысли как сделать чтобы заработали?

PS: повозился немного с node.js - то ещё извращение. В итоге запустил нечто похожее на сервер. При ближайшем рассмотрении оно сделало почти то же самое что делает любой сервис, например telnet. Мне проще было такое написать на C или C#, там действительно всё ясно понятно с TCP/IP sockets. Но это только серверная часть, это не решает проблему клиента созданного на Unity и собранного под HTML5/WebGL.

PPS: есть у кого-то работающий пример Unity проекта под WebGL с node.js сокетами типа websockets клиентом игры и сервером на node.js или telnet?

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 09:48
IDoNotExist
iCSdeveloper писал(а):
Saltant писал(а):Это называется WebAPI, даже для современной браузерной игры этот подход не правильный. Нужно использовать сокеты.


А какой вариант ты предлагаешь? Сокеты отлично работают на Windows/Linux/MAC/Android/iOS клиентах. Но при сборке из Unity3D проекта под платформу WebGL - не работают. Есть мысли как сделать чтобы заработали?

PS: повозился немного с node.js - то ещё извращение. В итоге запустил нечто похожее на сервер. При ближайшем рассмотрении оно сделало почти то же самое что делает любой сервис, например telnet. Мне проще было такое написать на C или C#, там действительно всё ясно понятно с TCP/IP sockets. Но это только серверная часть, это не решает проблему клиента созданного на Unity и собранного под HTML5/WebGL.

PPS: есть у кого-то работающий пример Unity проекта под WebGL с node.js сокетами типа websockets клиентом игры и сервером на node.js или telnet?

Когда то давно поднимал рабочий сервер под Websocket на netty, для клиента использовал Simple Web Sockets for Unity WebGL, который ныне устарел и выпилен из стора, всё работало, на этой системе крутилось два рабочих проекта.

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 10:04
iCSdeveloper
IDoNotExist писал(а):для клиента использовал Simple Web Sockets for Unity WebGL, который ныне устарел и выпилен из стора, всё работало


о том и разговор, что никакой альтернативы нет. Даже тот модуль который был для WebGL, отсуствует, и его невозможно купить. Из официальной объяснительной Unity по этому поводу:

Simple Web Sockets for Unity WebGL - Unfortunately, Simple Web Sockets for Unity WebGL is no longer available.
This package has been deprecated from the Asset Store. This means that new purchases of the package are not allowed and that only users who already purchased or downloaded the package before it was deprecated, are allowed to download it. In most cases, package deprecation happens because the publisher is unable or unwilling to support the package anymore. We suggest looking for alternative packages or contacting the publisher directly.

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

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 15:43
IDoNotExist

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 17:34
seaman
то есть похоже что его никто не поддерживал, никто не отвечал на письма, и поэтому его оттуда убрали.

Вообще то это учебный проект Юнитеков
Изображение
Почему его убрали - неведомо.

В Сторе есть еще один проект, который по описанию работает на WebGL через сокеты:
https://assetstore.unity.com/packages/t ... work-71391
Networking API: framework is based on a thin layer of abstraction on top of UDP/RUDP/ Websocket protocols. It makes communication between your servers and clients a breeze. You can start as many socket servers and clients as you want.

Re: webgl + websocket

СообщениеДобавлено: 20 дек 2019, 19:44
seaman
Также можно посмотреть на гитхабе. Типа:
https://github.com/jirihybek/unity-websocket-webgl

Re: webgl + websocket

СообщениеДобавлено: 21 дек 2019, 00:22
Saltant
Ваще конечно странно что нельзя в WebGL юзать библиотеки типа SignalR если это действительно так. Потому что через сигнал делать нужные действия прям ваще топчик для веба. Ну а с другой стороны, разве кто то еще играет в браузерные игры? я чет такого давно не наблюдаю, даж уже и рекламу таких игр нигде не встречал.

Re: webgl + websocket

СообщениеДобавлено: 25 дек 2019, 13:56
iCSdeveloper


Спасибо, дорогой друг! ты очень многим помог. А теперь... бонус! вопрос на засыпку, как сделать под WebGL приложение двухстороннего видеочата с вебкамеры на чистом WebGL Websockets и JavaScript/HTML5 ?

Re: webgl + websocket

СообщениеДобавлено: 31 мар 2020, 05:44
moti
Спасибо за такое решение как master-server-framework :-bd

На VPS с внешним ip работать будет простая игра с поддержкой multiplayer ?
У кого есть готовая простая игра, которая с данной реализацией работает на vps с внешним ip ?

Спасибо заранее