Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2019, 16:10
Интересующийся
Отправить личное сообщение для Devil666 Посмотреть профиль Найти все сообщения от Devil666
 
Регистрация: 12.02.2019
Сообщений: 11

web сокет не хочет работать по ssl
есть java script
вот его код

var scribe = require('scribe-js')(),
app = require('express')(),
server = require('http').Server(app),
io = require('socket.io')(server),
requestify = require('requestify');
var schedule = require('node-schedule');
server.listen(8080);

add_online();
setInterval(add_online, 60000);
activebots();


io.sockets.on('connection', function (socket) {
updateOnline();
getDrops();

socket.on('newDrop', function(id){
requestify.post('http://localhost/api/getGame', { id: id})
.then(function (response) {
data = JSON.parse(response.body);
io.sockets.emit('nd', data.text);
}, function (err) {
console.log(err);
});

});

socket.on('disconnect', function () {
updateOnline();
});

});
function updateOnline(){
io.sockets.emit('updateonline', Number(Object.keys(io.sockets.adapter.rooms).lengt h) + Number(global.online));
console.info('Connected ' + Object.keys(io.sockets.adapter.rooms).length + ' clients');

}


function getDrops(){
requestify.post('http://localhost/api/getdrops', {})
.then(function (response) {
data = JSON.parse(response.body);
io.emit('welcomedrop', data.text);
console.log("stats");
}, function (err) {
console.log(err);
});
};

function activebots()
{
console.log("\x1b[32m", "[NVBOT] Функция ботов сработала!");
requestify.post('http://localhost/api/playbot', {})
.then(function (response) {
data = JSON.parse(response.body);
var time = data.time;
console.log("\x1b[32m", "[NVBOT] Фейк-Игра сыграна! ID: "+data.game+" Время: "+ Number(data.time)+"мс");
requestify.post('http://localhost/api/getGame', { id: data.game})
.then(function (response) {
data = JSON.parse(response.body);
io.sockets.emit('nd', data.text);


setTimeout(function() {
activebots();
}, time);

}, function (err) {
console.log(err);
setTimeout(activebots, 50000);
});


}, function (err) {
console.log("\x1b[31m", "[NVBOT] Ошибка запроса");
setTimeout(activebots, 50000);
});
}

function add_online()
{
requestify.post('http://localhost/api/getonline', {})
.then(function (response) {
data = JSON.parse(response.body);
global.online = data.online;
console.log("\x1b[32m", "[NVBOT] Фейк онлайн обновлен! (+" + data.online + ")");
updateOnline();
}, function (err) {
console.log("\x1b[31m", "[NVBOT] Ошибка получения фейкового онлайна");
});
}



А вот PHP

<script src="./files/socket.io-1.4.5.js"></script>
<script>
var socket = io.connect(':8080', {rememberTransport: false});

socket.on('welcomedrop', function(data){
$("#response").prepend(data);
//$("#oe").html(kk.count);
$('#response').children().slice(20).remove();
});

socket.on('updateonline', function(data){
$("#oe").html(data);
});

socket.on('nd', function(data){
$("#response").prepend(data);
$('#response').children().slice(20).remove();
});
</script>
<script>

$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

$(function() {

window.history.replaceState(null, null, window.location.pathname);
// getContent();


/*
var conn1 = new WebSocket('ws://82.146.44.43:5858');
conn1.onmessage = function(e) {
var kk = JSON.parse(e.data);


$("#response").prepend(kk.new);
$("#oe").html(kk.count);
$('#response').children().slice(20).remove();
};

var conn2 = new WebSocket('ws://82.146.44.43:8081');
conn2.onmessage = function(e) {
var kk = JSON.parse(e.data);


как мне сделать так чтобы скрипт коннектился к веб сокету по 443 протоколу но не 8080
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2019, 16:13
Интересующийся
Отправить личное сообщение для Devil666 Посмотреть профиль Найти все сообщения от Devil666
 
Регистрация: 12.02.2019
Сообщений: 11

пробовал менять на 443 везде, пишет ошибку в консоле not found socket
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2019, 16:59
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

1) сам сервер должен обслуживать https - https://stackoverflow.com/questions/...ress-js-server

2) потом надо подключиться как здесь https://stackoverflow.com/questions/...et-io-with-ssl

сходу как правильно не скажу, но эти 2 надо сделать... просто версии меняются и что там у тебя я хз %)

п/с/ есть варик, надо будет написать не https, a wss...
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2019, 17:32
Интересующийся
Отправить личное сообщение для Devil666 Посмотреть профиль Найти все сообщения от Devil666
 
Регистрация: 12.02.2019
Сообщений: 11

не понимаю ничего(
не получается настроить( можете помоч?
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2019, 20:09
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

$ mkdir testwss
$ cd testwss
$ yarn init
$ yarn add express socket.io socket.io-client

package.json
{
  "name": "testwss",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.16.4",
    "socket.io": "^2.2.0",
    "socket.io-client": "^2.2.0"
  }
}


wss.js
var fs = require('fs')
var express = require('express')
var app = express()
var server = require('https').createServer({
  key: fs.readFileSync('./key.pem'),
  cert: fs.readFileSync('./cert.pem'),
  passphrase: 'password'
}, app)
var io = require('socket.io')(server)

app.use(express.static(__dirname + '/public'))

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html')
})

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' })
  socket.on('my other event', function (data) {
    console.log(data);
  })
})

server.listen(3000, function () {
  console.log('started at https:/localhost:3000')
})


index.html
<html>

<head>
  <title>Socket.IO WSS</title>
</head>

<body>
  <h1>Socket.io wss</h1>
  <script src="socket.io.js"></script>
  <script>
    var socket = io.connect('wss://localhost:3000');
    socket.on('news', function (data) {
      console.log(data);
      socket.emit('my other event', { my: 'data' });
    });
  </script>
</body>

</html>


создать папку
public

в нее скопировать:
- node_modules/socket.io-client/dist/socket.io.js
- node_modules/socket.io-client/dist/socket.io.js.map

установить openssl https://www.openssl.org/

сгенерировать ключи:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem

положить их в корень папки testwss

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

в браузере открывать https://localhost:3000

в консоле в браузере смотреть что все ок %)
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2019, 22:11
Интересующийся
Отправить личное сообщение для Devil666 Посмотреть профиль Найти все сообщения от Devil666
 
Регистрация: 12.02.2019
Сообщений: 11

root@222:/# sudo netstat -ntulp
/etc/host.conf: line 5: bad command `localhost 222.ru'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 502/redis-server 12
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 541/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 392/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 541/apache2
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 441/mysqld
tcp6 0 0 :::8080 :::* LISTEN 751/bot.js
tcp6 0 0 :::22 :::* LISTEN 392/sshd

Последний раз редактировалось Devil666, 20.02.2019 в 23:07.
Ответить с цитированием
  #7 (permalink)  
Старый 21.02.2019, 06:13
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

здесь какая-то ошибка
/etc/host.conf: line 5: bad command `localhost 222.ru'

тогда, там должно быть что-то типа:
127.0.0.1 localhost 222.ru
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не хочет работать скрипт Alven Общие вопросы Javascript 0 20.09.2013 21:26
Нежадный поиск не хочет работать в String.match() Почемучкин Общие вопросы Javascript 3 23.08.2013 22:15
Скрипт не хочет работать как надо в Хроме AlexZ Javascript под браузер 1 11.05.2012 11:34
не хочет работать слайдер картинок на сайте MadStill Общие вопросы Javascript 0 29.03.2011 14:55
Сломал всю голову.. Посмотрите спецы.. Не хочет работать страница в mozilla-firefox.. ProniK Ваши сайты и скрипты 1 02.06.2010 19:33