Node js php чат

Нужен совет, касательно создания чата (PHP or Node)?

Всем здравствуйте!
Под конец рабочего пятничного дня, решил все-таки задать вопрос.

Есть сайт на обычном хостинге.
Есть VPS хостинг.

На сайте пытаемся создать чат, в идеале подобие slack Five Open-Source Slack Alternatives.

Но коллеги накидали вместо одного из готовых решений, свое на node.js + socket.io, пока очень примитивное, с целью с этим всем разобраться.

Весь остальной сайт (авторизация) на php + mysql.

У всех мало опыта с этим, вчера получилось залить чат на VPS, где уже настроен Apach.

Получилось, что на 80 порту у нас все как на обычном хостинге, а на 3000 порту чат.

Соответственно придется страницу с чатом писать на node.js полностью, дополнительно решать проблему с авторизацией (одно из решений ).
Но для меня более непонятно, что делать с этим 3000 портом, как сделать чтобы он отображался как обычная страница и не возникало проблем с теми, у кого этот порт закрыт? решение, в котором пока не могу разобраться

Читайте также:  Requests post python content type

Но поют мне, что это будет костыль, так ли это?

С этими мыслями стал искать решения на php. Как понял, их два:
1) Комет сервер comet-server.ru
2) php сокеты, в которых вообще для меня пока темный лес

Наткнулся на статью Создание чата на PHP, github. Но не пойму, подходит ли это решения для нашего проекта?

Ну и собственно вопросы:
1) Правильно ли будет, что весь сайт и логика на php и mysql, а одна страница с чатом на node.js?

Если скорее да, чем нет, то:
2) Решаем ли вопрос с отличным от 80, портом?
3) Лучше использовать готовые решения (нравится lets-chat, но не понятно справимся ли мы с его кастомизацией) или писать свое?
4) Если свое (вариант неплохой, так как очень хочется разобраться в node.js), то как сообщения можно организовать с историей? Стоит ли использовать nosql для сообщений, какую? Может membercash? Как понял, сначала все хранится в Nosql или member, затем через некоторое время, кучей пишется в mysql и чистится, в общем тут мне нужна ликбез статья.

Если лучше будет написать все на php:
2) Стоит ли использовать чат со статьи Создание чата на PHP? Здесь пишется свой комет сервер?
3) Лучше сторонний комет сервер или свой?
4) Писать все в mysql, или стоит использовать nosql для сообщений, какую? Может membercash? Как понял, сначала все хранится в Nosql или member, затем через некоторое время, кучей пишется в mysql и чистится, в общем тут мне нужна ликбез статья.

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

Источник

Как PHP использовать вместе с NODE.JS?

Создаю простой чат. Хочу использовать на нём PHP и NODE.JS. PHP — для авторизации. NODE.JS — для самого чата. Не хотел бы вводить в адресную строку порт, а доменное имя с локального хостинга wamp. Но не знаю, как это сделать.

zoonman

А зачем вам там PHP? А порт можно скрыть при помощи прокси.
Гораздо сложнее обмен сессиями между PHP и Node.js, но это тоже решается.

Я хочу использовать php, как основной серверный язык. А node.js для одного чата. Допустим, у нас дана страница localhost/chat/index.php , и на эту страницу надо загрузить чат, сделанный на node.js. Как это сделать?

Sanasol

zoonman

Vadim997: вам нужно написать веб-чат, потом сделать реверсивное проксирование для вашего чата. Для разных веб-серверов существуют разные технологии проксирования. Например для nginx это ngx_http_proxy_module, а для Apache mod_proxy. Получается, что ваш чат работает точно также, как бы он работал на машине разработчика, т.е. слушает локальный хост и порт, но запущен на сервере. А запросы от пользователей поступают на веб-сервер (Nginx/Apache) и далее проксируются к вашему приложению на Node.js, вещи вроде маппинга директорий решаются на уровне прокси-сервера. Просто вы должны понимать, что веб-сервер Apache/Nginx слушает порт 80, а веб-приложение на Node.js тоже может слушать порт, и по сути, тоже являться веб-сервером, т.е. чтобы пользователь попал к Node.js приложению, Node.js приложению нужно тоже слушать порт 80. В вашем случае его уже слушает веб-сервер с php, т.е. Node.js уже не сможет занять этот порт, а значит Node-сервер должен использотвать другой порт. Т.е. либо пользователь должен обращаться к другому порту, либо нужно продумывать механизм проксирования.
Кстати, если вас смущает разработка на Node.JS, вы можете использовать PHP, Ratchet к вашим услугам.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Private one to one chat application using nodeJS and PHP

rfinquiron/nodePHPchat

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Simple Chat application using PHP and node.js and socket.io

Integration test between nodeJS and PHP for realtime private chat

This is just a simple chat application, where all pages are managed by PHP. NodeJS is used for realtime one to one chat

This uses PHP and nodeJS for realtime one to one chat

Forked from : https://github.com/jdutheil/nodePHP and updated to get private chat functionality

About

Private one to one chat application using nodeJS and PHP

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Example chatroom project with crossing use between NodeJS PHP Socket.io and Express.

ethaizone/Example-chatroom-with-NodeJS-PHP

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Example chatroom project with crossing use between NodeJS PHP Socket.io and Express. This one for demo customer service system with lobby for staff.

  • Put this project to folder of apache or nginx that can run PHP.
  • run npm install to install node package. This require express and socket.io.
  • run node chat.js for run websocket/api server. You need to run php and node on same server and make sure that port 80 and 3421 can connect from client.
  • Open index.php page to get login page as customer.
  • Open staff.php page to get login page as customer service staff.
  • Staff can send preview link by insert link to message box and append link with #preview for make url can click and open iframe below chat box. (Example: http://ethaizone.com#preview ) Try it. Simple and plan.

For learning perpose only. If you want similar project, contact me. I will cast magic and make it best for you.

This project is quick and dirty example. I don’t implement any security protection.

Login Chat Staff lobby

About

Example chatroom project with crossing use between NodeJS PHP Socket.io and Express.

Источник

создать узел nodejs chat в веб-приложении php

Я слышал, что nodejs – лучший выбор для создания приложения чата реального времени. Поэтому я решил попробовать.

//on server side //create nodejs server var http = require('http'); var chatApp = http.createServer(function (request, response) < //create an html chat form listened by this nodejs server response.writeHead(200, ); response.write(').listen(8000); //create websocket protocol via socket.io var io = require('socket.io').listen(chatApp); //send data to client io.sockets.on('connection', function(socket) < socket.on('message_to_server', function(data) < io.sockets.emit("message_to_client",< message: data["message"] >); >); >); //on client side //get data from server response var socketio = io.connect(); socketio.on("message_to_client", function(data) < document.getElementById("chatlog").innerHTML = ("
" + data['message'] + document.getElementById("chatlog").innerHTML); >); //submit and send data to server via enter key document.onkeydown = function(e)< var keyCode = (window.event) ? e.which : e.keyCode; if(keyCode == 13)< var msg = document.getElementById("message_input").value; socketio.emit("message_to_server", < message : msg>); document.getElementById("message_input").value = ''; > >;

Все выглядит нормально, но php webapp intergration. Как я могу заставить его работать как часть веб-страницы php?

Как уже упоминалось в моем первоначальном комментарии, вы можете позволить вашему PHP-приложению продолжать делать то, что он делал все время, и просто использовать NodeJS для обработки сетевых подключений через сокет (через socket.io). Ниже приведен пример упрощенной структуры, которую вы могли бы использовать:

Ваша страница chat.php или контроллер чата:

    .    . var socketio = io.connect('http://localhost:8080'); socketio.on("message_to_client", function(data) < document.getElementById("chatlog").innerHTML = ("
" + data['message'] + document.getElementById("chatlog").innerHTML); >); //submit and send data to server via enter key document.onkeydown = function(e)< var keyCode = (window.event) ? e.which : e.keyCode; if(keyCode == 13)< var msg = document.getElementById("message_input").value; socketio.emit("message_to_server", < message : msg>); document.getElementById("message_input").value = ''; > >;

Ваше приложение NodeJS будет выглядеть следующим образом. Обратите внимание на отсутствие регулярной обработки HTTP-соединений, которую мы теперь разрешаем PHP:

//create websocket protocol via socket.io var io = require('socket.io').listen(8080); //send data to client io.sockets.on('connection', function(socket) < socket.on('message_to_server', function(data) < io.sockets.emit("message_to_client",< message: data["message"] >); >); >); 

И это база, которую вы будете использовать. Как упоминалось ранее в моем комментарии, это можно расширить, чтобы добавить механизмы аутентификации с поддержкой базы данных в часть узла NodeJS сервера.

Источник

Оцените статью