Comments (12)
вот код примера чат3:
public $userIds = [];
protected function onOpen($connectionId, $info) {//it is called when the connection is open
$message = 'пользователь #' . $connectionId . ' : ' . var_export($info, true) . ' ' . stream_socket_get_name($this->clients[$connectionId], true);
foreach ($this->clients as $clientId => $client) {
$this->sendToClient($clientId, $message);
}
$info['GET'];//or use $info['Cookie'] for use PHPSESSID or $info['X-Real-IP'] if you use proxy-server like nginx
parse_str(substr($info['GET'], 1), $_GET);//parse get-query
//var_export($_GET['id']);
$this->userIds[$connectionId] = $_GET['userId'];
}
и в нём видно, что userId - это не номер соединения, а параметр из GET-запроса.
если налдо оправлять по номеру соединения, то строчку
$this->userIds[$connectionId] = $_GET['userId'];
надо заменить на
$this->userIds[$connectionId] = $connectionId;
from websocket.
Здравствуйте.
Как запрограммируете так и будет. К сожалению у меня нет готового примера для чаткомнат.
from websocket.
Не так выразился с чат-комнатами, хотя возможно близко.
Я как то могу на стороне сервера отправить сообщение конкретному пользователю, а не всем сразу?
И что скажете по примерам, конкретнее второй вопрос про чат3?
from websocket.
Да, в примере Чат3 показано как отправить одному человеку.
from websocket.
Да - это ответ на то что чат3 улучшенная версия чат2?
#!/usr/bin/env php
<?php
$userId = @$argv[1];
$message = @$argv[2];
if( $userId && $message )
{
$localsocket = 'tcp://127.0.0.1:8010';
$instance = stream_socket_client ($localsocket, $errno, $errstr);//соединямся с вебсокет-сервером
fwrite($instance, json_encode(['message' => $message, 'userId' => $userId]) . "\n");//отправляем сообщение
///fwrite($instance, json_encode(['message' => $message, 'clientId' => $userId]) . "\n");//отправляем сообщение
}
else die("No_Data\n");
Не отправляет, к сожалению.
Пробовал уже и к веб-адресу цепляться, не помогло.
Так же пробовал и по userId и по clientId отправлять.
Подскажите пожалуйста, что упускаю?
from websocket.
нет, чат3 - это не улучшенная версия чат2.
ничего не могу подсказать, мало исходных данных, опишите подробно всё что делаете
from websocket.
- Скачал через composer websocket и websocket-examples
- В www/vendor/morozovsk/websocket-examples/chat3/server/index.php для websocket прописал свой IP
- Прописал этот же IP в www/vendor/morozovsk/websocket-examples/chat3/client/index.html для new WebSocket
- Зашел на www.site.ru/vendor/morozovsk/websocket-examples/chat3/client/ - все работает
- Код для www/vendor/morozovsk/websocket-examples/chat3/server/send.php привел в прошлом сообщение
- В консоле пытаюсь отправить сообщение:
www/vendor/morozovsk/websocket-examples/chat3/server/send.php 23 qwerrty
где 23 мой ID, что отдался на страницы с чатом.
На страницы сообщение не появилось.
Предполагаю нет связи между localsocket и websocket ??
from websocket.
Сори, моя не внимательность.
Подкиньте ссылок, что бы почитать чем отличается чат3 от чат2.
Вы как то писали про 1024 потока на одном сокете.
Не увидел реализации ни в чат2 ни в чат3, это домашнее задание или проглядел?
from websocket.
https://github.com/morozovsk/websocket-examples/tree/master/chat2/server
https://github.com/morozovsk/websocket-examples/tree/master/chat3/server
https://github.com/morozovsk/websocket/wiki :
pecl/event (needed for more then 1000 connections without php recompilation)
needed packages: php-pear libevent-2.0-5 libevent-dev libssl-dev pkg-config
command: pecl install event
add "extension=event.so" to php.ini
from websocket.
То есть, если установить:
needed packages: php-pear libevent-2.0-5 libevent-dev libssl-dev pkg-config
command: pecl install event
add "extension=event.so" to php.ini
То вопрос об ограничение решен?
И чат3 в этом случае оптимальнее, так как запускать один процесс, за коим следить проще, когда как в чат2 все равно стартовать два скрипта?
Если не хотим что либо устанавливать, то для ограничения юзаем чат2, где запускаем один мастер и воркеров по кол-ву ядер или меньше, но не больше, если таковые устроят?
from websocket.
да
from websocket.
Сори, что перееоткрыл
from websocket.
Related Issues (20)
- Как подружить с pg_notify HOT 4
- GenericEvent считывает не весь буфер HOT 2
- список онлайн юзеров HOT 8
- Отправка изображения через вебсокет
- Работа в Safari HOT 1
- wss timeot HOT 17
- stream_select(): supplied argument is not a valid stream resource HOT 7
- Не закрывает соединение при окончании на сайте HOT 4
- Как сделать многопоточность? HOT 6
- request response order HOT 1
- PHP Client HOT 3
- Один конект по сокету на несколько вкладок HOT 2
- Потраченное время на разработку. HOT 4
- Не сбрасываются коннекты HOT 12
- "Залипает" при слишком длинном handshake-сообщение (режим event) HOT 4
- websocket lunch on remote host HOT 1
- Ошибка при остановке HOT 2
- Каково потребление памяти и cpu при нагрузке в 100 000 соединений? HOT 4
- Почему бросили? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from websocket.