LockGit / gochat

goim server write by golang !🚀
http://45.77.108.245:8080
MIT License
2.77k stars 472 forks source link

运行程序直接就卡到那儿不动了,没有任何打印,不知道到底是不是在正常工作... #17

Closed smil4ever closed 3 years ago

smil4ever commented 3 years ago

./gochat.bin -module logic卡住不动了。把main.go里的connect部分的代码临时注释掉,程序打印运行都正常了,是不是connect的部分代码占用资源过大?还是这部分代码有bug导致的?

LockGit commented 3 years ago

你是手工本地没有使用docker运行吧,./gochat.bin -module logic 会把进程放到前台,如果你要运行其他的,新开个terminal运行接下来挂在前台的进程,默认进程都是挂在前台的,你也可以nohup的形式挂在后台

smil4ever commented 3 years ago

bug已找到修改了,在server_tcp.go的init函数重复初始化RPC了,这个地方的bug,作者可以自行验证。

smil4ever commented 3 years ago

注释掉这些代码就ok了 // func init() { // rpc.InitLogicRpcClient() // }

LockGit commented 3 years ago

只使用websocket,不使用tcp,是可以移除server_tcp部分。使用tcp这部分代码不能移除,不过整个代码上还有很大优化空间。 我运行时是在docker中,暂时没有复现你说的这个问题,可以给出更详细的错误信息

smil4ever commented 3 years ago

我不是在docker中测试的,是直接在裸机上测试的,如果不注释掉这块代码,直接卡死不动了就。。我有看到connect里RunTcp已经有过同样的初始化调用,在编译运行之前,init里过早的初始化了,导致后面的代码废了,你看一下你是不是最新的代码?确定是要调用两次吗?

LockGit commented 3 years ago

./gochat.bin -module connect_websocket 与 ./gochat.bin -module connect_tcp 其实是两个进程,init初始化2次就不存在了,如果是在一个进程里,那么是有问题的,你是在windows环境?

smil4ever commented 3 years ago

windows WSL ubuntu子系统上测试的,我注释掉了之后,目前可以正常工作,后面不知道会出现啥问题。后边有问题了就反馈吧!您先忙吧!在试用这个到产品中,后期肯呢个会fork一下,做进一步的修改。