最近闲得无聊做了个即时通讯小模块
效果上图
可以显示在线好友并进行私聊(时间比较短,私聊没搞上信息盒子,导致没有将私聊信息分开),群聊功能(也是没盒子,就只有一个群)
代码方面:https://gitee.com/krm-x/socket-demo.git
我说一下我遇到的问题
服务端写法
客户端写法
这个IP地址卡了我好久,在如果只是在局域网内运行的话,直接用内网IP加端口即可
使用外网就有讲究了
情况一有服务器,无域名
用法
服务器端:
192.168.31.88:8888 内网IP加端口
客户端:
xxx.xxx.xxx.xxx:8888 外网IP加端口
只有公网IP(服务器IP)的话,写法与内网的类似,客户端还是公网IP加端口(非80),服务器端就是服务器的内网IP加端口,这两个端口要一致的(服务器的防火墙与服务器运营商的安全组都要去配置对应的端口)
当然web项目的端口肯定不能和这一个重复(IIS中的部署位置)
情况二有服务器,有域名
这种情况是多了个域名,我们知道一般有域名的都会绑定在80端口上用主机名来区分网站,这时候就出现问题了
例子:www.baidu.com:8888
解析:14.215.177.38:80:8888
这样加端口的形式就不对了,
正确的写法是80端口正常保留
服务端:内网IP加A端口(非80)
客户端:公网IP加A端口(非80)
这两个端口需要是一致的
用法
服务端:
还是内网IP加端口
192.168.31.88:8888
客户端:
这里需要是域名加端口了
www.socket.com:8888