FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
framework/examples/websocket_server.php at master · lovefcaaa/framework · GitHub
lovefcaaa
/
framework
Public
forked from
whcyc2002/swoole_framework
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
framework
/
examples
/
websocket_server.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
103 lines (89 loc) · 2.56 KB
Breadcrumbs
framework
/
examples
/
websocket_server.php
Copy path
File metadata and controls
103 lines (89 loc) · 2.56 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
define
(
'
DEBUG
'
,
'
on
'
);
define
(
"
WEBPATH
"
,
str_replace
(
"\\"
,
"
/
"
,
__DIR__
));
require
__DIR__
.
'
/../libs/lib_config.php
'
;
class
WebSocket
extends
Swoole
\
Protocol
\WebSocket
{
protected
$
message
;
/**
* @param $serv swoole_server
* @param int $worker_id
*/
function
onStart
(
$
serv
,
$
worker_id
=
0
)
{
Swoole::
$
php
->
router
(
array
(
$
this
,
'
router
'
));
parent
::
onStart
(
$
serv
,
$
worker_id
);
}
function
router
()
{
var_dump
(
$
this
->
message
);
}
/**
* 进入
* @param $client_id
*/
function
onEnter
(
$
client_id
)
{
}
/**
* 下线时,通知所有人
*/
function
onExit
(
$
client_id
)
{
//将下线消息发送给所有人
//$this->log("onOffline: " . $client_id);
//$this->broadcast($client_id, "onOffline: " . $client_id);
}
function
onMessage_mvc
(
$
client_id
,
$
ws
)
{
$
this
->
log
(
"
onMessage:
"
.
$
client_id
.
'
=
'
.
$
ws
[
'
message
'
]);
$
this
->
message
=
$
ws
[
'
message
'
];
$
response
= Swoole::
$
php
->
runMVC
();
$
this
->
send
(
$
client_id
,
$
response
);
//$this->broadcast($client_id, $ws['message']);
}
/**
* 接收到消息时
*/
function
onMessage
(
$
client_id
,
$
ws
)
{
$
this
->
log
(
"
onMessage:
"
.
$
client_id
.
'
=
'
.
$
ws
[
'
message
'
]);
$
this
->
send
(
$
client_id
,
'
Server:
'
.
$
ws
[
'
message
'
]);
//$this->broadcast($client_id, $ws['message']);
}
function
broadcast
(
$
client_id
,
$
msg
)
{
foreach
(
$
this
->
connections
as
$
clid
=>
$
info
)
{
if
(
$
client_id
!=
$
clid
)
{
$
this
->
send
(
$
clid
,
$
msg
);
}
}
}
}
//require __DIR__'/phar://swoole.phar';
Swoole
\Config::
$
debug
=
true
;
Swoole
\Error::
$
echo_html
=
false
;
$
AppSvr
=
new
WebSocket
();
$
AppSvr
->
loadSetting
(
__DIR__
.
"
/swoole.ini
"
);
//加载配置文件
$
AppSvr
->
setLogger
(
new
\
Swoole
\
Log
\
EchoLog
(
true
));
//Logger
/**
* 如果你没有安装swoole扩展,这里还可选择
* BlockTCP 阻塞的TCP,支持windows平台
* SelectTCP 使用select做事件循环,支持windows平台
* EventTCP 使用libevent,需要安装libevent扩展
*/
$
enable_ssl
=
false
;
$
server
=
Swoole
\
Network
\Server::
autoCreate
(
'
0.0.0.0
'
,
9443
,
$
enable_ssl
);
$
server
->
setProtocol
(
$
AppSvr
);
//$server->daemonize(); //作为守护进程
$
server
->
run
(
array
(
'
worker_num
'
=>
1
,
'
ssl_key_file
'
=>
__DIR__
.
'
/ssl/ssl.key
'
,
'
ssl_cert_file
'
=>
__DIR__
.
'
/ssl/ssl.crt
'
,
//'max_request' => 1000,
//'ipc_mode' => 2,
//'heartbeat_check_interval' => 40,
//'heartbeat_idle_time' => 60,
));
Back
|
FazBrowse Home
|
New Git URL