Я использую методы websocket для своего проекта.
есть один файл server.php, который является файлом демона.
и код клиентской стороны:
var wsUri = "ws://localhost:8590/demo/server.php";
var websocket = new WebSocket(wsUri);
$(document).ready(function () {
startTimer();
websocket.onopen = function (ev) { // connection is open
$('#message_box').append("<div class=\"system_msg\">Connected!</div>"); //notify user
}
//#### Message received from server?
websocket.onmessage = function (ev) {
var msg = JSON.parse(ev.data); //PHP sends Json data
var type = msg.type; //message type
var umsg = msg.message; //message text
var uname = msg.name; //user name
if (msg.action) {
startTimer();
}
if (!msg.action) {
if (type == 'usermsg')
{
$('#message_box').append("<span> Name :" + uname +"</span>");
if (umsg.indexOf("null") >= 0) {
} else {
//window.alert(1);
}
}
if (type == 'system')
{
$('#message_box').append("<span> system :" + umsg + "</span>");
}
}
};
websocket.onerror = function (ev) {
$('#message_box').append("<div class=\"system_error\">Error Occurred - " + ev.data + "</div>");
};
websocket.onclose = function (ev) {
$('#message_box').append("<div class=\"system_msg\">Connection Closed- " + ev.data + "</div>");
};
теперь какой сеанс создан в server.php. Я использую тот же session_id для другого файла, но не предоставляю мне данные сеанса
$session_id= $_REQUEST['session_id'];
if(!empty($session_id)){
session_id($session_id);
}
session_start();
echo "<pre>";
print_r($_SESSION);
exit;
но это дает мне пустой массив
так как получить сеанс, созданный websocket в http файле
<?php
@session_start();
if(empty($_SESSION['session_id']) && !empty($_REQUEST['session_id'])) {
$_SESSION['session_id'] = $_REQUEST['session_id'];
}else {
print ('Error : can not initialize your session...');
}