webim
webim copied to clipboard
使用PHP+Swoole实现的网页即时聊天工具
WebIM
使ç¨PHP+Swoole4å®ç°çç½é¡µå³æ¶è天工å
·ï¼å¨çº¿ä½éªå°åï¼http://webim.swoole.com/
- åºäº
Swoole4åç¨å®ç°ï¼å¯ä»¥åæ¶æ¯ææ°ç¾ä¸TCPè¿æ¥å¨çº¿ - åºäº
WebSocket+Http Cometæ¯ææææµè§å¨/客æ·ç«¯/ç§»å¨ç«¯ - æ¯æåè/群è/ç»èçåè½
- è天记å½ä½¿ç¨
MySQLåå¨ - ç¨æ·å表åå¨çº¿ä¿¡æ¯ä½¿ç¨
Redisåå¨ - åºäº
Server PUSHç峿¶å å®¹æ´æ°ï¼ç»å½/ç»åº/ç¶æåæ´/æ¶æ¯çä¼å 容峿¶æ´æ° - æ¯æåé龿¥/å¾ç/è¯é³/è§é¢/æä»¶ï¼å¼åä¸ï¼
- æ¯æ
Webç«¯ç´æ¥ç®¡çææå¨çº¿ç¨æ·å群ç»ï¼å¼åä¸ï¼
ä¾èµ
éè¦Swoole-4.4.7ææ´é«çæ¬
pecl install swoole
é¨ç½²è¯´æ
å®è£ ä¾èµç Composer å
composer install
ä¿®æ¹é ç½®
- é
ç½®
configs/redis.phpä¸çRedisæå¡å¨ä¿¡æ¯ï¼ç¨æ·å表åä¿¡æ¯ä¼åå°Redisä¸ - é
ç½®
configs/db.php䏿°æ®åºä¿¡æ¯ï¼è天记å½ä¼åå¨å°MySQLä¸ - 导å
¥
MySQL表æ¥å£å°å¯¹åºçæ°æ®åºä¸
è¡¨ç»æ
CREATE TABLE `webim_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`name` varchar(64) COLLATE utf8mb4_bin NOT NULL,
`avatar` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`type` varchar(12) COLLATE utf8mb4_bin NOT NULL,
`msg` text COLLATE utf8mb4_bin NOT NULL,
`send_ip` varchar(20) COLLATE utf8mb4_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
- ä¿®æ¹
configs/webim.phpä¸çé项ï¼è®¾ç½®æå¡å¨çURLå端å£
$config['server'] = array(
//çå¬çHOST
'host' => '0.0.0.0',
//çå¬ç端å£
'port' => '9503',
//é
ç½®åå [å¯é]
'name' => 'im.swoole.com',
);
server.hostï¼server.port项为WebIMæå¡å¨å³WebSocketæå¡å¨çå°åä¸ç«¯å£server.nameé 置使ç¨çååï¼å¯éï¼ï¼å¦ææªè®¾ç½®å°ç´æ¥ä½¿ç¨IP:PORTè¿è¡è®¿é®- çå¬
80å443ç1024以å 端å£éè¦rootæé
å¯å¨æå¡å¨
php server.php
é ç½®ååè§£ææè æ¬å° Host [å¯é]
- ç´æ¥ä½¿ç¨
IP:PORTï¼è¿éä¸éè¦è®¾ç½®ãç´æ¥æå¼http://IP:PORT/å³å¯ - å¤ç½ååéè¦é
ç½®
DNSè§£æ - æ¬æºååéè¦ä¿®æ¹
/etc/hostsï¼å¢å127.0.0.1 im.swoole.comæ¬æºååç»å®
é
ç½®æååï¼å¯ä»¥ä½¿ç¨æµè§å¨æå¼ï¼å¦ï¼http://im.swoole.com:9503/
以ä¸ä» 为示ä¾ï¼å®é 项ç®éè¦ä¿®æ¹ä¸ºå¯¹åºçåå