Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2018, 08:04
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Как работать с websocket если сервер на IIS10?
Добрый день. Начал изучать websoctet. Написал простой код, который возвращает ошибку 200.
Подскажите что я не так понимаю?
Вот код js
var socket = new WebSocket("ws://localhost/test.php"); //возвращает ошибку 200


Запускаю страницу с адреса http://localhost/index.html

Получается он находит файлик php и не знает что с ним делать.
В IIS10 websocket установлен. Каких то изменяющихся настроек в Диспетчере служб IIS найдено не было, кроме как enable websocket, где можно поставить включить или выключить.

В самом php файлике просто написано:
echo 'test';

Подскажите почему так не работает, и где я ошибся?
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2018, 09:38
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

Вебсокет(WS) не работает как REST Api,

те при обращении к test.php напрямую, скрипт просто вернет 'test', а надо что бы этот скрипт работал как daemon

вот пример для php без iis - http://socketo.me/docs/hello-world,

вряд-ли получится завести websocket на php внутри iis ), как варик, это будет asp.net... ну или этот пример, http://socketo.me/docs/hello-world, запустить внутри твоего test.php, но тогда надо будет руками пройти один раз по этому пути, чтобы он завелся, и потом, вероятно, можно подключится через html, но это полный бред... )

итого: для iis это asp.net, и/или если это консольное приложение можно посмотреть WCF, или например для C# я успешно юзаю https://github.com/sta/websocket-sharp

) или использовать nodejs

yarn init
yarn add ws

wss.js
const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('something');
});


запустить: node wss.js

wss.html
<script>
  var ws = new WebSocket(`ws://localhost:8080`);
  ws.onopen = () => {
    ws.onmessage = (e) => console.log(e)
  }
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2018, 09:47
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

SuperZen,
Спасибо за подробный ответ
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить вход на сайт если.... dezytube Элементы интерфейса 1 26.08.2016 15:12
Как запретить вход на сайт если.... dezytube Элементы интерфейса 2 23.08.2016 13:32
Как поменять класс элемента если он покидает видимую область стр mitrich38 Events/DOM/Window 11 02.07.2016 13:38
Как очистить таймер, если сервер вернул ответ? Dimaz AJAX и COMET 11 21.09.2014 13:46
Как отправить multiple select на сервер Hapson AJAX и COMET 9 17.03.2014 00:45