Blogger Information
Blog 38
fans 0
comment 3
visits 43804
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
chat_server聊天服务器
意外的博客
Original
1349 people have browsed it
//输入页面
<script type="text/javascript">
	layui.use(['layer'],function(){
			// $ = layui.jquery;
			layer = layui.layer;
		});
	// WebSocket新版本提供的原生js对象;
	var ws = new WebSocket('ws://127.0.0.1:2000');
	ws.onopen = function(){
		//这里显示登陆成功,前提是要在cmd命令提示符中要连接成功;
		//步骤: e:->cd +chat.php地址->php chat.php start;
		// console.log('登陆成功');
	};
	//这里的对象e是chat.php中send发送过来的;
	ws.onmessage = function(e){
		var res = e.data;
		console.log(res);
	};
	// 前端将输出ws.send('hehe');的信息传送到后台;chat.php;
	// setTimeout(function(){
	// 	ws.send('hehe');
	// },2000);
	
	
//输入框发送信息;	
	function sends(){
	// 获取输出内容;
	var $message = $('.txt-chat').html();
	//将消息发送给server服务器;
	ws.send($message);
	//清空消息;
	$('.txt-chat').html('');
	
        // 取用户消息
        var msg = $('.txt-chat').html();
        // 把数据发给server
        ws.send(msg);
        // 清空消息区
        $('.txt-chat').html('');

}
//后台

<?php
use Workerman\Worker;
require_once __DIR__ . '/Autoloader.php';    //这个是自带的文件;

// 注意:这里与上个例子不同,使用的是websocket协议
$ws_worker = new Worker("websocket://0.0.0.0:2000");

// 启动4个进程对外提供服务
$ws_worker->count = 1;

// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function($connection, $data)
{   
    //后台在这里去接收前端发送过来的信息;data里的信息用send输出,就会显示在控制台(页面上);
    // 前端不发送信息过来是无法出发这个方法:这里输出的智慧显示在worker服务器上;
	//在函数内部是无法调用外部函数, global:是代码变成全局的
	global $ws_worker;
	echo 'nidaye'. $data;
    // 向客户端发送hello $data
    // $connection->send('hello ' . $data);

    //利用$ws_worker->connections群发数据;
    //因为是群发,所以用遍历;将好友循环一遍,然后每个人都可以接收;
    foreach($ws_worker->connections as $key => $value){
    	$connection->send($data);
    }
};

// 运行worker
Worker::runAll();

在输入窗口将信息发送出去(send发送)>在后台onMessage方法去接收这些信息->用$connection->send()将信息发送到前端ws.onmessage这个方法>然后将获取到的对象打印在控制台;

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post