Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
1

Возможно ли создать технологию непрерывного соединения клиент-сервер на виртуальном хостинге?

09.06.2014, 05:31. Показов 3430. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Возможно ли создать технологию непрерывного соединения клиент-сервер на виртуальном хостинге?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2014, 05:31
Ответы с готовыми решениями:

Создать клиент-серверное приложение, чтоб сервер постоянно работал на хостинге, а клиенты подключались
Как сделать Клиент Сервер, не по локалке, а удаленное подключение, чтоб сервер постоянно работал на...

Клиент-сервер. Чат на виртуальном сервере
Здравствуйте. Подскажите пожалуйста как реализовать чат клиент-сервер, если установить сервер на...

Просмотр всех файлов на удаленном ПК, используя технологию Клиент-сервер
Добра. Пишу клиент-серверное приложение. Нужно сделать так, чтобы визуально на сервере было видно...

Как развернуть socket сервер на хостинге - Клиент Серверное приложение
Здравствуйте! Столкнулся с такой проблемой: У меня есть клиент и сервер, написанные на сокетах...

17
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.06.2014, 10:11 2
Вебсокеты?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 07:06  [ТС] 3
Цитата Сообщение от Nameless One Посмотреть сообщение
Вебсокеты?
Решил попробовать, в консоле пишет ошибку, хотя хостинг поддерживает сокеты. Приложил архив с файлами..
Вложения
Тип файла: zip simpleworking.zip (2.5 Кб, 14 просмотров)
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 07:17 4
Cript, во-первых, пиши код и сообщение об ошибках прямо в теле сообщения (в теге [CODE][/CODE]).

Во-вторых, к чему тут PHP? Это раздел о Node.js — платформе для разработки серверных приложений на Javascript. Если тебя интересует Node.js, то я могу показать рабочий пример, если тебе нужен именно PHP — добро пожаловать в соотвествующий раздел.

В-третьих, насколько я понял из кода на PHP (могу ошибаться, не специалист), ты там создаёшь не вебсокет, а TCP сокет. Это разные технологии, они не могут работать друг с другом.

В-четвёртых, тот код на HTML/JS будет у тебя работать не с твоим сервером, а с сервером echo.websocket.org.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 07:34  [ТС] 5
Цитата Сообщение от Nameless One Посмотреть сообщение
Если тебя интересует Node.js, то я могу показать рабочий пример
Он для виртуального хостинга подойдет?
Цитата Сообщение от Nameless One Посмотреть сообщение
код на HTML/JS будет у тебя работать не с твоим сервером, а с сервером echo.websocket.org.
Это само собой изменил
Цитата Сообщение от Nameless One Посмотреть сообщение
ошибка
Код
WebSocket connection to 'ws://---.com/' failed: Error during WebSocket handshake: Unexpected response code: 200
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 07:39 6
Цитата Сообщение от Cript Посмотреть сообщение
Он для виртуального хостинга подойдет?
Да.

Цитата Сообщение от Cript Посмотреть сообщение
ошибка
Проблема в коде на PHP, я уже про это говорил выше.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 07:56  [ТС] 7
Возможно ли увидеть рабочий пример?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 09:26 8
index.js:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var http = require('http');
var WebSocketServer = require('ws').Server;
var fs = require('fs');
var path = require('path');
var url = require('url');
 
var types = {
  html: 'text/html; charset=utf-8',
  js: 'text/javascript; charset=utf-8',
  css: 'text/css; charset=utf-8'
};
 
function handleRequest(req, res) {
  var uri = url.parse(req.url).pathname;
  if (uri === '/') {
    uri = '/index.html';
  }
 
  var fileName = path.join(__dirname, 'public', uri);
 
  if (!fs.existsSync(fileName)) {
    console.log("404", req.url);
    res.writeHead(404, { 'Content-Type': 'text/plain; charset=utf-8' });
    res.end('404 NOT FOUND');
    return;
  }
 
 
  var mime = types[path.extname(fileName).split('.')[1]] ||
        'text/plain; charset=utf-8';
  var data = fs.readFileSync(fileName);
 
  console.log("200", req.url);
  res.writeHead(200, {'Content-Type': mime,'Content-Length': data.length});
  res.end(data);
}
 
var port = process.env.PORT || 3000;
 
var server = http.createServer(handleRequest).listen(port, function () {
  console.log("Listening on", port);
  console.log("Hit Ctrl-C to quit");
});
 
var wss = new WebSocketServer({ server: server });
 
wss.on('connection', function (socket) {
  console.log('Got connection');
  socket.on('message', function (msg) {
    var res = msg.split('').reverse().join('');
    console.log("Got msg:", msg);
    socket.send(res);
  });
});
public/index.html:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
  <head>
    <title>Пример использования WebSocket</title>
  </head>
 
  <body>
    <span id="status">Соединение не установлено</span>
    <form>
      <fieldset id="controls" disabled>
        <input type="text" id="text" placeholder="Введите строку"><br />
        <button type="button" id="submit">Отправить</button>
      </fieldset>
    </form>
    <script src="index.js"></script>
  </body>
</html>
public/index.js:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
window.onload = function () {
  'use strict';
 
  var text = document.getElementById("text");
  var btn = document.getElementById("submit");
  var controls = document.getElementById("controls");
  var status = document.getElementById("status");
 
  var setStatus = function(text) {
    status.innerHTML = text;
  };
 
  var host = window.location.host;
  var uri = "ws://" + host;
  var socket = new WebSocket(uri);
 
  socket.onopen = function () {
    controls.removeAttribute('disabled');
    setStatus('Соединение установлено');
  };
 
  socket.onclose = function() {
    controls.setAttribute('disabled', 'disabled');
    setStatus('Соединение разорвано');
  };
 
  btn.onclick = function () {
    socket.send(text.value);
  };
 
  socket.onmessage = function (evt) {
    text.value = evt.data;
  };
};
Клиент посылает серверу строку, сервер её разворачивает и возвращает клиенту. Это пример с чистым WebSocket, но в большинстве случаев лучше использовать какую-нибудь библиотеку (например, socket.io)
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 09:33  [ТС] 9
Все та же ошибка
В браузере Соединение разорвано
В консоли
WebSocket connection to 'ws://---.com/' failed: Error during WebSocket handshake: Unexpected response code: 200
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 09:35 10
Cript, как запускал?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 09:35  [ТС] 11
А есть какие то особенности при запуске?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 09:38 12
Cript, вообще да. У тебя хоть Node на впске установлен?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 09:40  [ТС] 13
Это можно как то проверить?
Если например нет, то какие еще могут быть варианты реализации потокового соединения?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 09:44 14
Цитата Сообщение от Cript Посмотреть сообщение
Это можно как то проверить?
У тебя доступ к VPS как осуществляется? SSH, админка?

Цитата Сообщение от Cript Посмотреть сообщение
Если например нет, то какие еще могут быть варианты реализации потокового соединения?
Установить библиотеку для WebSocket'ов для PHP, например, и писать на PHP.

А что, ты не можешь устанавливать ПО на своей VPS?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 09:46  [ТС] 15
Цитата Сообщение от Nameless One Посмотреть сообщение
У тебя доступ к VPS как осуществляется? SSH, админка?
SSH имеется, админка тоже
Цитата Сообщение от Nameless One Посмотреть сообщение
Установить библиотеку для WebSocket'ов для PHP
можно название библиотеки или ссылку на нее?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
11.06.2014, 09:49 16
Цитата Сообщение от Cript Посмотреть сообщение
SSH имеется, админка тоже
Либо ищи в админке, либо в консоли SSH введи which node, оно тебе выдаст путь, если Node установлен. Если не установлен и есть рут, то можешь легко установить сам. Хотя, по идее, и без рута можно установить.

Цитата Сообщение от Cript Посмотреть сообщение
можно название библиотеки или ссылку на нее?
Это тебе в гугл или в раздел PHP, я его не знаю.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
11.06.2014, 10:06  [ТС] 17
Nameless One, благодарю за ответ
0
0 / 0 / 1
Регистрация: 04.06.2014
Сообщений: 8
11.06.2014, 10:40 18
а зачем необходимо непрерывное соединение?

может есть смысл посмотреть в сторону того же дерби, ну или уже метеора?
0
11.06.2014, 10:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2014, 10:40
Помогаю со студенческими работами здесь

Удаленная база данных, соединения (клиент и сервер)
Здравствуйте друзья. Проблема такая. На скрине сама программа. БД написана на IBExpert. Сама...

Как обновить PHP на виртуальном хостинге?
На моём виртуальный хостинге (VPS на XEN) стоит PHP 5.3. Возможно через PHP-команду exec...

размещение игрового сервера на виртуальном хостинге
Здравствуйте! Созрел глупый вопрос, ибо пропадает арендованный виртуальный хостинг на мастерхосте....

Работает ли Edit Zone на виртуальном хостинге
Подскажите, пожалуйста, работает ли Edit Zone на виртуальном хостинге? Или это возможно только для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru