powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / СокетСервер с учётом пользователей
7 сообщений из 7, страница 1 из 1
СокетСервер с учётом пользователей
    #39161794
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте.

Вот нащёл в сети простенький примерчик сокет сервера:

Код: php
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.
set_time_limit(0);
	
	$host = "148.251.95.199";
	$port = 4096;
	
	if(extension_loaded('sockets')) echo "WebSockets OK";
    else echo "WebSockets UNAVAILABLE";

	$socket = socket_create(AF_INET, SOCK_STREAM, 0);

	$result = socket_bind($socket, $host, $port);

	$result = socket_listen($socket, 3);

	$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");

	$input = socket_read($spawn, 1024) or die("Could not read input\n");
	$input = trim($input);
	echo "Client Message : ".$input."
";
	$output = strrev($input) ."
";
	socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");

	socket_close($spawn);
	socket_close($socket);



Но немогу стото найти как на php при подключении сохраняять адрес с которого подключились
чтоб когда нужно отсылать им данные.

Кто нибудь может проиллюстрировать как это должно выглядить???
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39161894
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так пойдём с начала.

у меня есть домен на хосте. открываю там подомен. кладу на поддомен файлик socketServer.php c кодом из первого поста.

теперь пытаюсь связаться с ним через свой 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.
55.
56.
57.
window.onload = function()
{
	var label = document.getElementById("status");
	var message = document.getElementById("message");
	var btnSend = document.getElementById("send");
	var btnStop = document.getElementById("stop");
	
	var socket = new WebSocket("ws://auction.weblaboratory.info/socketServer.php");
	
	socket.onopen = function(event){
		label.innerHTML = "Соединились c сервером " + socket.url;
	};
	socket.onclose = function(event){
		label.innerHTML = "Соединение закрыто";
		
		var code = event.code;
		var reason = event.reason;
		var wasClean = event.wasClean;
		
		alert("" + wasClean + ", "  + reason + ", " + code);
		
		if(wasClean)
		{
			label.innerHTML = "Соединение закрыто корректно!";
		}
		else
		{
			label.innertHTML = "Соединение закрыто с ошибкой! Причина" + reason + " Код " + code;
		}
	};
	
	socket.onerror = function(event){
		console.log("error");
	};
	
	
    socket.onmessage = function(event){
		if(typeof event.data === "string")
		{
			label.innerHTML = event.data;
		}
	};
	
	btnSend.onclick = function(event) {
		if(socket.readyState === WebSocket.OPEN)
		{
			socket.send(message.value);
		}
	};
	
	btnStop.onclick = function() {
		if(socket.readyState === WebSocket.OPEN)
		{
			socket.close();
		}
	};
}; 



но соединение моментально закрывается с кодом ошибки 1006

что у меня неправельно со стороны сервера? Что поравить или вызывать надо както по другому!??
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39162465
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39162477
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Не совсем мой случай.

Но вот это строка var jsonSocket = new WebSocket("ws://ip:7379/.json");

указывается не файл а папка?

Как мне правельно устроить сокет на PHP?
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39162598
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сети нащёл вот такой ответ

авторОказалось, это фича, а не баг. В коде (websocket.c):

if (cmd_is_subscribe(cmd)) {
r->keep_alive = 1;
}

Изменение этого параметра решило часть проблем

а где это фаил находится? На сервере?
и Что там должно быть 1 или 0?
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39162622
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarВ сети нащёл вот такой ответ
эм.. а я разве не тоже самое скинул?

какой то сайт
гугла транслейт
Кстати, нынешний официальной версии интерфейса WebSockets есть ошибка, когда после успешного открытым немедленно закрыли , в результате чего в запросе не может быть получен позже, но, к счастью кто-то проблема решена , , но еще не слились в официальном мастера. Если вы хотите использовать обычные WebSockets, вы можете использовать эту временную Git: https://github.com/dcosta72/webdis или вручную изменить websocket.c затем скомпилировать:


p.s. Темы то зачем плодить в разных разделах.
...
Рейтинг: 0 / 0
СокетСервер с учётом пользователей
    #39163036
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

тоесть надо скомпелить и заменить расширение для PHP?

хорошо попробую. аолько вот чем компелить?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / СокетСервер с учётом пользователей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]