我想要做一个网络聊天室,不知道怎么开始做?

发布网友 发布时间:2022-04-23 16:22

我来回答

3个回答

懂视网 时间:2022-04-29 13:42

下面由workerman教程栏目给大家介绍制作简易聊天室的方法,希望对需要的朋友有所帮助!

1:环境在window下面的,thinkphp3.2

2:下载GatewayWork,放到

498af9a0c468474a6346c8c4b846ba1.png

目录下

3:然后双击打开

821342328ff39b70b5f0795180fa498.png

这个文件开启服务

4:所有的逻辑均在

ffa2ef952b1eb04ff9bf5f02f03a831.png

Events.php这个文件里面

5:当用户连接到服务器时,触发

eee870d770304d795b3562fed2885d7.png

,初始化,发送client_id

6:收到消息时,

bfc6f2ac26a27c28e25269206e28f2e.png

出发了这个方法,message,就是客户端发送过来的数据

7:附上代码

/**
 * 当客户端发来消息时触发
 * @param int $client_id 连接id
 * @param mixed $message 具体消息
 */
public static function onMessage($client_id, $message)
{
 //1:收到消息之后转成array()
 $data = json_decode($message,true);
 if(!$data){
 return;
 }
 //2:判断类型,bind是client_id与用户id绑定 
 //say 发送消息的事件
 switch ($data['type']) {
 //绑定
 case 'bind':
  $from_id = $data['from_id'];
  //把获取的到用户id与client_id进行绑定
  Gateway::bindUid($client_id,$from_id);
  return;
 //发送文字消息
 case 'say':
  //获取到客户端传过来的信息
  $text = $data['data'];
  $from_id = $data['from_id'];
  $to_id = $data['to_id'];
  //封装消息
  $info = array(
  'type'=>'text',
  'data'=>$text,
  'from_id'=>$from_id,
  'to_id'=>$to_id,
  'time'=>date('Y-m-d h:i:s',time()) 
  );
  Gateway::sendToUid($to_id,json_encode($info));
  return;
 //发送图片
 case 'img':
  $from_id = $data['from_id'];
  $to_id = $data['to_id'];
  $img = $data['img'];
  //封装消息
  $info = array(
  'type'=>'img',
  'data'=>$img,
  'from_id'=>$from_id,
  'to_id'=>$to_id,
  'time'=>date('Y-m-d h:i:s',time()) 
  );
  Gateway::sendToUid($to_id,json_encode($info));
  return;
 }
 //推送给指定的uid
 // 向所有人发送 
 // Gateway::sendToAll(json_encode($info));
}

可以简单的实现点对点的消息互通。

热心网友 时间:2022-04-29 10:50

1.首先你要进一步明确你要做什么?
网络聊天室,是网页聊天?电脑软件聊天?移动app聊天?
2.然后你要明白你可以做到什么?
你会编程吗?java,php,C++,C#,你会?那就可以开始设计程序的思路了。你不会?你就可以网上找源码学习自己部署源码项目了。
3.进一步你要知道你怎么可以做好。
服务端环境怎么搭建,服务器用什么系统,源码是不是有bug和漏洞,搭建好了客户端怎么连接,运行起来了怎么保证稳定性。
4.什么?你有钱?而且很多。
差不多几十万可以直接让别人帮你搞定,还有余钱招人运维。猪八戒或者直接线下联系软件公司就好。
5.什么?你没钱?
那么老老实实参考上述三条,让你或者你的团队自学搞定。不会编程也得会部署已经有的源码,不会服务器就赶紧了解就学,网上的聊天程序一大堆,安装说明文档,和各种知识也很多,基本上看教程照着来就行,如果你这都搞不定?
【那就没办法了】

热心网友 时间:2022-04-29 12:08

首先,你要看一下现在流行的即时通行有哪些技术可以应用,一般来说可以使用socket来进行通信,也可以使用nodejs来进行通信,这两种通信技术用的是最多的,也是相对来说效率最高的,接下来就是开发语言的选择,你可以选择java,php等开发语言,如果你用的是php,我建议你用php的workerman,如果你用的是java,我建议你用netty进行开发,网上都有很多的教程,你可以自己搜索和找一些开发的资料,很多的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com